Java/배열

[Java] 이차원 배열을 활용해서 1~10 출력하기

U__q 2022. 9. 20. 11:22
728x90

문제

이차원 배열을 활용해서 1~10까지 출력하기

실행 결과 예시

1	2	3	4	5	6	7	8	9	10

소스 코드

package Array;

public class array_1 {

	public static void main(String[] args) {
		int[][] a ={{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}};
		
		for(int i=0; i<a.length; i++) {
			for(int j=0; j<a[i].length; j++) {
				System.out.print(a[i][j]+"\t");
			}
		}
	}
}

소스 코드 풀이

int[][] a ={{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}};

이차원 배열의 기본 선언은 int[][] 변수명; 또는 int a [][]; 또는 int[] a[];이다. 첫 번째와 같은 선언 방식을 가장 선호하고 딱 봤을 때 변수가 배열 변수인 것을 알 수 있다. 배열 변수는 배열 값을 넣어 줄 때 중괄호는 2개씩 사용해줘야한다. 만약 일렬로 배열하기 위해서 중괄호를 하나만 사용한다면 컴퓨터는 일차원 배열로 이해하여 오류가 난다.

Type mismatch: cannot convert from int to int[]

이런식으로 'Type mismatch'라는 오류가 나오는데 이차원 배열에 일차원 배열을 사용하려고 하여 나타나는 오류이다. 

for(int i=0; i<a.length; i++) {
	for(int j=0; j<a[i].length; j++) {
		System.out.print(a[i][j]+"\t");
	}
}

반복문 중 for문을 사용해서 i가 a.length(10)까지 커지도록 잡아준다. index의 값이 0부터 시작하여 실제로는 값이 10까지 커지면 인덱스의 값도 10이 되는 것이기에 알맞게 커질 수 있다. 중첩 for문을 사용해서 j가 a[i].length까지 커지도록 하여 출력문에 a[i][j]를 출력한다. a에 따로 행과 열을 잡아주지않고 바로 값을 넣었기에 저렇게 출력을 해주면 정상적으로 출력문이 나온다.

실행 결과

1	2	3	4	5	6	7	8	9	10
728x90