티스토리 뷰
✨ 반복문을 사용해 2차원 배열을 간단하게 만들 수 있다.
public static void main(String[] args) {
String[][] seat = {
{ "A1", "A2", "A3" },
{ "B1", "B2", "B3", "B4" },
{ "C1", "C2", "C3", "C4", "C5" } };
for (int i = 0; i < seat.length; i++) {
for (int j = 0; j < seat[i].length; j++) {
System.out.print(seat[i][j] + " ");
}
System.out.println();
}
}
>> 만약 j < seat.length; 로 코드를 입력하면 A, B, C 전부 3개씩 밖에 출력되지 않는다. 따라서 seat에 [i]를 붙여서 i = 0, 1, 2일 때 따로 생각해 줘야 한다.
>> seat.length의 값은 seat이 참조하고 있는 배열의 길이이므로 3이다. seat[0]은 3, seat[1]은 4, seat[2]의 값은 5 이다.
✨다음은 A1~A15까지, A~J까지의 영화관 좌석을 배열을 통해 생성해 보도록 하자. 코드는 다음과 같다.
public static void main(String[] args) {
// 세로 크기 10 x 가로 크기 15에 해당하는 영화관 좌석
String[][] seat = new String[10][15]; // 세로 10, 가로 15의 배열 생성
String[] eng = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" };
for (int i = 0; i < seat.length; i++) { // 세로
for (int j = 0; j < seat[i].length; j++) { // 가로
seat[i][j] = eng[i] + (j + 1);
System.out.print(seat[i][j] + " ");
}
System.out.println(); // 줄바꿈
}
}
그런데 코드를 짤 때 eng에 A부터 J까지 입력해 주는게 효율적이지 않다. 그래서 아스키코드를 이용해 코드를 간편화 해 줄 수 있다. String[] eng = ~ 부분을 삭제하고 char ch = 'A'; seat[i][j] = String.valueof(ch) + (j + 1); ch++;로 코드를 바꿔주면 A부터 시작해 J까지 직접 입력해 주지 않고도 똑같은 결과를 낼 수 있다.
public static void main(String[] args) {
// 아스키코드 대문자 A는 65부터, 소문자 a는 97부터, 숫자 0은 48부터 시작
char c = 'A';
System.out.println(c);
System.out.println((int) c);
c = 'a';
System.out.println((int) c);
c = '0';
System.out.println((int) c);
}
'Algorithm > Java' 카테고리의 다른 글
자바 기본편 - 전달값과 반환값 (0) | 2023.02.09 |
---|---|
자바 기본편 - 메소드 (0) | 2023.02.08 |
자바 기본편 - 2차원 배열 (0) | 2023.02.04 |
자바 기본편 - 배열 (0) | 2023.02.01 |
자바 기본편- break와 continue (0) | 2023.01.30 |