package array_statement;
public class Ex2 {
public static void main(String[] args) {
/*
* 다차원 배열(2차원 배열)
*
* < 2차원 배열 생성 기본 문법 >
* 데이터타입[][] 변수명 = new 데이터타입[행크기][열크기];
* 데이터타입 변수명[][];
* 데이터타입[] 변수명[];
*
* < 2차원 배열 접근 기본 문법 >
* 변수명[행인덱스][열인덱스]
*
* - 2차원 배열의 행크기 : 배열명.length
* 2차원 배열 특정 행의 열크기 : 배열명[행인덱스].length
*
*/
// 2차원 배열 변수 score 선언
// int[][] score;
// int score[][];
// int[] score[];
// 2차원 배열 5행 3열 크기를 갖는 int형 배열 생성
// score = new int[5][3];
// 위의 두문장을 하나로 결합하여 배열 선언 및 생성을 동시에 수행
int[][] score = new int[5][3];
/*
* 다음과 같은 데이터를 초기화
* 국어 영어 수학
* 1번 학생 80(0,0) 80 80
* 2번 학생 90(1,0) 90 90
* 3번 학생 100 80 60
* 4번 학생 100 100 100
* 5번 학생 77 80 90(4,2)
*
*/
score[0][0] = 80; score[0][1] = 80; score[0][2] = 80; // 1번 학생
score[1][0] = 90; score[1][1] = 90; score[1][2] = 90; // 2번 학생
score[2][0] = 100; score[2][1] = 80; score[2][2] = 60; // 3번 학생
score[3][0] = 100; score[3][1] = 100; score[3][2] = 100; // 4번 학생
score[4][0] = 77; score[4][1] = 80; score[4][2] = 90; // 5번 학생
// 행번호 0 ~ 4까지 반복
for (int i = 0; i < 5; i++) {
// 열번호 0 ~ 2까지 반복
for (int j = 0; j < 3; j++) {
System.out.print(score[i][j] + " ");
}
System.out.println(); // 줄 바꿈
}
System.out.println("==========================================");
// 2차원 배열의 행크기 : 배열명.length
// 2차원 배열의 특정 행의 열크기 : 배열명[행번호].length
System.out.println("2차원 배열 score의 행크기 : " + score.length);
System.out.println("score의 1번행 열크기 : " + score[1].length);
System.out.println("score의 2번행 열크기 : " + score[2].length);
// 2차원 배열의 모든 데이터를 출력하는 공식
// => 바깥쪽 for문은 행 반복하는 반복문(배열명.length)
// => 안쪽 for문은 행의 열을 반복하는 반복문(배열명[행번호].length)
/*
* 출력결과
*
* 1번학생 : 80 80 80
* 2번학생 : 90 90 90
* 3번학생 : 100 80 60
* 4번학생 : 100 100 100
* 5번학생 : 77 80 90
*
*/
for (int i = 0; i < score.length; i++) {
System.out.print((i + 1) + "번학생 : ");
for (int j = 0; j <score[i].length; j++) {
System.out.print(score[i][j] + " ");
}
System.out.println();
}
}
}