Java
[Java]2차원 배열과 for each문
꽃달린감나무
2021. 11. 4. 21:23
728x90
2차원 배열
import java.util.Scanner;
public class Variable01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] array = new int[3][4]; //2차원 배열 선언
array[0][0] = 10;
int[][] array2 = new int[3][];//가변 크기의 배열 선언
// array2[0][1] = 10; array2[0]의 배열은 아직 참조하는 배열이 없어 오류가 발생한다.
array2[0] = new int[1]; // array2[0]에 1개짜리 배열을 참조하도록 하겠다.
array2[1] = new int[2]; // array2[1]에 2개짜리 배열을 참조하도록 하겠다.
int[][] array3 = { {1}, {1,2,3}, {1,2}}; // 선언과 동시에 초기화하는 방법
System.out.println(array3[0][0]);
for( int i =0; i<array3.length; i++) {
for(int j =0; j<array3[i].length; j++)
System.out.print(array3[i][j]);
System.out.println();
}
}
}
주의할 점 :
int[][] array2 = new int[3][];
위와 같이 가변의 크기로 2차원 배열을 선언하면 1개의 배열만 선언되고 안에 참조해야할 배열의 값이 들어가있지 않으므로 코드를 실행할 시 배열의 오류가 생깁니다. 즉 가변의 길이값만 정해놓고 그 안에는 아무것도 넣지 않았으므로 참조해야할 값이 없는 것입니다. 따라서
array2[0] = new int[1];
array2[1] = new int[2];
와 같이 배열의 값에 참조해야할 배열을 넣어주어야만 합니다.
For each
int[] iarr = {10,20,30,40,50};
//A
for(int i =0; i<iarr.length; i++) {
System.out.println(iarr[i]);
}
//B
for(int value:iarr){
System.out.println(value);
}
배열의 모든 원소를 출력하기 위해서는 A와 같은 방법을 많이 사용했지만 JAVA 1.5버전부터 foreach구문을 지원 B 같이
for( 자료형 변수명 : 출력하고 싶은 자료구조)의 형태로 모든 원소를 추출할 수 있게 되었습니다.
728x90