for each 문의 형식

: for(변수타입 변수이름 : 배열이름)

 실행부분;

 

ex)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Arr {
    
    public static void main(String[] args) {
//        String [] arData = {"안녕", "반가워", "이름이", "뭐니?"};
//        
//        for(String i : arData) {
//            System.out.println(i);
//        }
        
        int [][] arrScore = {
                {102030},//1번
                {112539},//2번
                {122638},//3번
                {132737},//4번
                {142836}//5번
        };
        int total = 0;
        double avg = 0.0;
        //각 학생별 총점과 평균 출력하기
        //빠른 for문으로
        int cnt = 0;
        for(int[] arScore : arrScore) {
            total = 0;
            cnt++;
            for(int score : arScore) {
                total += score;
            }
            System.out.println(cnt+"번 총점 : "+total+"점");
            avg = Double.parseDouble(String.format("%.2f", (double)total/arScore.length));
            System.out.println(cnt+"번 평균 : "+avg+"점");
        }
    }
}
 
cs

for each (향상된 for문) 에서는 배열의 항목 수만큼 실행부분을 반복하는데

반복이 이루어질 때마다 배열의 항목을 순서대로 꺼내어 변수(number)에 자동으로 대입해 줍니다.

 

따로 반복 변수(int i)를 선언하거나 배열의 값을 가져오는 부분(array[i]) 없이

실행부분에서는 하고자 하는 작업에 집중할 수 있습니다.

 

*주의할 점*

오직 배열의 값을 가져다 사용할 수만 있고(read) 수정할 수 는 없다는 것(write)입니다.