인프런 커뮤니티 질문&답변

gustjq5678님의 프로필 이미지
gustjq5678

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

아스키 코드

chap_05 아스키코드 질문

해결된 질문

작성

·

242

0

영화관 좌석 번호에서 ch를 문자열로 바꾸는 부분에서

실행하면 A1~A15 까지는 정상 표시되지만 그밑에는

null 로 표시가 되는데 원인이 무엇인가요?

// 세로 크기 10 x 가로크기 15 에 해당하는 영화관 좌석
String[][] seats3 = new String[10][15];
char ch = 'A';
for (int i = 0; i < seats3.length  ; i++) {
    for (int j = 0; j < seats3[i].length ; j++) {
        seats3[i][j] = String.valueOf(ch) + (j + 1);
    }
    ch++;

    // 영화관 좌석 확인
    for (i = 0; i < seats3.length; i++) { // 세로
        for (int j = 0; j < seats3[i].length; j++) { // 가로
            System.out.print(seats3[i][j] + " "); // A1 A2 A3...
        }
        System.out.println();
    }

답변 1

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?
코드에 실수가 있었네요. 처음 반복문 내에서 ch++ 을 한 뒤에는 중괄호 } 를 통해 반복문을 끝내주어야 합니다. 그래야 A1 ~ A15 라는 값을 넣고나서 이어서 B1 부터 새로운 값을 입력하게 되는데요.

    ...
    ch++;
} // 누락된 부분

작성하신 코드에서는 이 부분이 누락되어서 A1 ~ A15 까지만 값을 입력한 상태에서 바로 전체 배열의 데이터를 순회하게 되었습니다. 그러다보니 아직 값이 들어가지 않아서 null 로 표시된 것이죠. 아래처럼 코드를 변경해주시면 되겠습니다.

String[][] seats3 = new String[10][15];
char ch = 'A';
for (int i = 0; i < seats3.length  ; i++) {
    for (int j = 0; j < seats3[i].length; j++) {
        seats3[i][j] = String.valueOf(ch) + (j + 1);
    }
    ch++;
} // 누락된 부분

// 영화관 좌석 확인
for (int i = 0; i < seats3.length; i++) { // 세로
    for (int j = 0; j < seats3[i].length; j++) { // 가로
        System.out.print(seats3[i][j] + " "); // A1 A2 A3...
    }
    System.out.println();
}

주석으로 표시한 // 누락된 부분을 주의해서 실행 결과를 확인해주세요 😊
감사합니다.

gustjq5678님의 프로필 이미지
gustjq5678

작성한 질문수

질문하기