컴퓨터 관련/JAVA 강의

java #18 개선된 for문

승명 2016. 12. 18. 19:49

java #18 개선된 for문

 
* 개선된 for문

- JDK 1.5에서부터 지원
- array, Collection, List, Set 등의 모든 방(처음부터 끝까지)의 값을 출력시
- 인덱스를 사용할 수 없다
- 기존의 for보다 느리지만 간편하게 사용할 수 있다.

1
2
3
for(데이터형 변수명 : 배열명){
      (배열방의 데이터형과 일치하는 데이터형 사용)
}
cs
\

1차원
배열

1
2
3
4
int[] arr=new int[]{10,20,30};
for(int i : arr){ // arr : 일차원
    i
}
cs

2차원
배열

1
2
3
4
5
6
int[][] arr={{10,20,30},{40,50,60}};
for(int[] a : arr){ // arr:이차원
    for(int i : a){
        i
    }
}
cs

3차원
배열

1
2
3
4
5
6
7
8
int[][][] arr={{{10,20,30},{40,50,60}},{{70,80,90},{100,110,120}}}
for(int[][] a2 : arr ){ // arr:삼차원
    for(int[] a1 : a2){
        for(int i : a1){
            i
        }
    }
}
cs

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
36
37
38
39
40
41
42
43
44
45
package day0226;
/**
* 개선된 for를 사용하여 배열의 모든방 출력
*/
public class TestFor {
    
     public TestFor(){
          int[] arr1={10,20,30,40,50};
          System.out.println("일차원배열출력");
          for(int i : arr1){
               System.out.print(i+" ");
          }//for
          System.out.println("\n------------------------");    
          int[][] arr2={{1,2,3,4,5,6},{7,8,9,10,11,12}};
          System.out.println("이차원 배열의 출력");
          for(int[] a1 : arr2){ //이차원 배열의 한행을 일차원 배열에 할당
               for(int i : a1){ //일차원 배열 방 하나의 값을 변수에 할당
                    System.out.print(i+" ");
               }//for
               System.out.println("행끝");
          }//for
          System.out.println("------------------------");
         
          int[][][] arr3={{{1,2,3},{4,5,6}},{{7,8,9},{10,11,12}}};
         
          System.out.println("삼차원 배열의 출력");
          for(int[][] a2 : arr3){ //삼차원배열의 한면을 이차원 배열에 할당
 
               for(int[] a1 : a2){ //이차원 배열의 한행을 일차원 배열에 할당
                    for(int i : a1){ //일차원 배열 방의 값을 변수에 할당
                         System.out.print(i+" ");
                    }//for
                    System.out.println("행끝");
               }//for
               System.out.println("면끝");
          }//for    
          System.out.println("----------------------------------");         
          int year=1984;
          String[] zodiac={"원숭이","닭","개","돼지","쥐","소","호랑이","토끼","용","뱀","말","양"};         
          System.out.println(year + "년에 태어난 당신은 " +zodiac[year%12]+"띠입니다.");         
     }//TestFor
     public static void main(String[] args) {
          new TestFor();           
     }//main
}//class
 
cs