공부를 하자!/나도코딩 자바 기본편

[나도코딩 자바 기본편] 11일차: 다차원 배열 순회, 아스키 코드

kimchopchop 2024. 12. 2. 03:24

나도코딩 자바 기본편_11일차(24.12.01)

#029 <다차원 배열 순회>

 
1) 세로 3 x 가로 5 영화관 좌석 만들기
String [][] seats = new String[][] {
           {"A1", "A2", "A3", "A4", "A5"},
           {"B1", "B2", "B3", "B4", "B5"},
           {"C1", "C2", "C3", "C4", "C5"}
};
 
for (int i = 0; i < 3; i++) { → 세로
      for (int j = 0; j < 5; j++) { → 가로
             System.out.print(seats[i][j] + " "); → 좌석 번호 A1 A2 A3 ...
       }
       System.out.println(); → A B C 줄바꿈
}
 
 
2) 가로 크기가 다른 배열 만들기
String[][] seats2 = {
          {"A1", "A2", "A3"},
          {"B1", "B2", "B3", "B4"},
          {"c1", "C2", "C3", "C4", "C5"}
};
 
for (int i = 0; i < seats2.length; i++) { → 세로
      for (int j = 0; j < seats2[i].length; j++) { → 가로(각 인덱스 번호 길이만큼)
             System.out.print(seats2[i][j] + " "); → 좌석 번호 A1 A2 A3 ...
        }
       System.out.println();
}
 
 
3) 세로 10 x 가로 15 영화관 좌석 만들기
String[][] seats3 = new String[10][15]; → 값 넣지 않고 선언만 할 때는 크기 적어주기
String[] eng = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}; → 세로 x 10 만들기
for (int i = 0; i < seats3.length; i++) { → 각각의 세로값(알파벳)
      for (int j = 0; j < seats3[i].length; j++) { → 가로 자리 만들기
             seats3[i][j] = eng[i] + (j+1); → 좌석 번호 A1 A2 A3 ...
       }
}
 
// 좌석 번호 출력
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();
}
 
 
4) 표 구매 (빈 좌석 처리)
seats3[7][8] = "__"; → H9
seats3[7][9] = "___"; → H10
 
for (int i = 0; i < seats3.length; i++) {
      for (int j = 0; j < seats3[i].length; j++) {
            System.out.print(seats3[i][j] + " ");
       }
      System.out.println();
}
 
 

#030 <아스키 코드>

 

* 아스키 코드 (ANSI) : 미국 표준 코드

char c = 'A';
System.out.println(c); → A
System.out.println((int)c); → 65
 
c = 'B';
System.out.println(c); → B
System.out.println((int)c); → 66
 
c++;
System.out.println(c); → C
System.out.println((int)c); → 67
 
→ 숫자를 얻을 수도 있지만 문자를 얻을 수도 있음
→ 알파벳 대문자 (A) -> 65 부터 시작
→ 알파벳 소문자 (B) -> 97 부터 시작
→ 숫자 (0) -> 48 부터 시작
 
 
1) ASCII 코드 활용해 세로 10 x 가로 15 영화관 좌석 만들기
String[][] seats3 = new String[10][15];
char ch = 'A'; → ch++ → B / ch++ → C ...
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를 String으로)
      }
      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();
}
 
 

오늘의 한마디

챕터 5 강의가 끝났다! 아직 퀴즈가 남아 있긴 하지만... 퀴즈 풀고 한 챕터만 더 들으면 자바 기본편이 모두 끝난다. 오늘이 11일차고, 중간에 복습하느라 며칠 건너뛰었으니까... 약 2주 전까지만 해도 코딩이 뭔지도 몰랐던 거네. (물론 아직도 모른다...^^) 하지만 조금... 아주 조금은 재미를 붙인 것 같기도 하다. 자바가 나랑 잘 맞는 건가? 아니 그냥 선생님의 강의 방식이 내가 좋아하는 스타일인 것 같다. 왜냐면... KDC 과정도 같이 듣고 있는데(자바 강의) 그건 영 재미가 없기 때문이지... 아직 초반이니까 흥미를 잃지 않는 게 제일 중요하다고 생각한다. 그러니까 재밌는 강의 먼저 완주해야지. KDC 강의에서는 이클립스로 실습하는데 나는 인텔리제이가 훨씬 마음에 든다. 아직 뭐가 좋고 나쁘다를 따질 만큼 아는 것도 없지만 걍 느낌이 그래. 그냥 뭐랄까... 이런 얘기를 하고 있는 내가 낯설고 신기하다. 계속해서 더 낯선 세계로 떠날 용기가 내 안에 있기를 바라는 새벽 세 시 반. 졸리다... 퀴즈는 내일 풀고 이제 자야지.