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
'Java > 과제' 카테고리의 다른 글
[Java] 배열을 활용해서 알파벳 소문자 출력하기 (0) | 2022.09.07 |
---|---|
[Java] 배열을 활용해서 알파벳 대문자 출력하기 (0) | 2022.09.07 |
[Java] 메소드를 이용해서 세 과목을 입력받은 후 합계, 평균, 평균의 성취도, 취약 과목 출력하기 (메소드 활용편) (1) | 2022.08.28 |
[Java] 메소드를 이용해서 세 과목을 입력받은 후 합계, 평균, 평균의 성취도, 취약 과목 출력하기 (기본편) (0) | 2022.08.28 |