앙큼한 개발기록

for문 foreach문 본문

개발/java

for문 foreach문

angkeum 2018. 1. 16. 00:33

for문의 기초 형식  

for (초기화 식; 조건식; 변화 식) { 실행 문; ... }

초기화 식에서 반복되는 변수를 선언해 줍니다. 

조건식에서 초기화 식에서 정의한 변수 값의 범위에 관한 참(true) , 거짓(false)을 평가하고 참(true) 인 경우에는 블록 내에 기술 된 문장을 실행합니다. 

그리고 블록의 처리가 끝나면 변화식에서 변수를 증감 시킨 후 다시 조건식을 평가합니다. 또한 true 인 경우에는 블록 문장의 실행 해, false 인 경우에는 for 문을 종료합니다.

반복 실행되는 문장이 하나 인 경우에는 중괄호("{"와 "}")를  생략할 수 있습니다.

for (초기화 식; 조건식; 변화 식)
  실행 문;

다음 예제를 통해 살펴 보자.

int sum = 0;

for (int count = 0; count <2; count ++) {
  sum + = 2;
}

System.out.println (sum);

for 문에서 n 번 반복하는 경우 중 연산자의 등호 여부에 따라서 다음과 같이 나누어 진다.

등호가 없는 경우 

for (int i = 0; i <n; i ++) {
  / * 실행 문장 * /
}

등호가 있는 경우 

for (int i = 1; i <= n; i ++) { / * 실행 문장 * / }

클래스 예제

class Sample { public static void main (String args []) { int sum = 0; for (int i = 0; i <10; i ++) { sum + = 2; } System.out.println (sum); } }

컴파일 후 실행하면 결과는 20입니다.

for-each문

foreach문은 따로 범위를 지정하지 않기 때문에 배열의 처음부터 끝까지 각 갯 수 만큼 반복한다. 

사실 for문 보다 더 업그래이드 된 버전이다. 

배열 안에 있는 각 객체 값을 변수에 넣어서 그대로 가져온다고 보면 된다.

list 형식 

for (초기화 식 : 배열) { 실행 문; ... }


초기화 식에서 배열 안에서 가지고 올 객체를 선언하여 넣고 

반복문에서 해당 객체를 사용하면 된다. 

list 예시

List<String> list = new ArrayList<>(); for (string abc : list) { System.out.println(abc);s); }


for(Map.Entry<String, String> entry : map.entrySet()) {
    System.out.println(entry.getKey());
    System.out.println(entry.getValue());
}


map은 배열 저장시 키 값과 value값이 존재 하기에 두개를 한꺼번에 받을 수 있는 객체 entry를 사용하여 
map을 foreach문으로 반복한다. 

map 예시

for(Map.Entry<String, String> entry : map.entrySet()) {

    System.out.println(entry.getKey());
    System.out.println(entry.getValue());
}

for(Iterator<String> iterator = map.keySet().iterator(); iterator.hasNext(); ) {
    String key = iterator.next();
    System.out.println(key + " => " + map.get(key));
}


iterator 예시


for(Iterator<String> iterator = map.keySet().iterator(); iterator.hasNext(); ) {

    String key = iterator.next();
    System.out.println(key + " => " + map.get(key));
}

iterator는 추상배열로 배열의 종류이다. 


출처 : 자바 드라이브 (https://www.javadrive.jp/start/for/index2.html)

Comments