본문 바로가기

Development

(Java) Chapter5. Array

1. 배열

변수 : 하나의 자료

배열 : 여러개의 자료, 속하는 데이터의 자료형이 모두 같음

 

1) 배열 선언 첫 번째 방법

예시

String coffeeRoss = "아메리카노";
String coffeeRachel = "카페모카";
String coffeeChandler = "라떼";
String coffeeMonica = "카푸치노";

System.out.println(coffeeRoss + "하나");
System.out.println(coffeeRachel + "하나");
System.out.println(coffeeChandler + "하나");
System.out.println(coffeeMonica + "하나");
System.out.println("주세요");
String[] coffees = new String[4];               // 크기 4개의 문자열을 포함하는 문자 배열 생성

2) 두 번째 방법

String coffees[] = new String[4];
coffees[0] = "아메리카노";                         // 대괄호 안 숫자의 위치에 문자열 할당, 0부터 시작
coffees[1] = "카페모카";
coffees[2] = "라떼";
coffees[3] = "카푸치노";

3) 세 번째 방법

String[] coffees = new String[] { "아메리카노", "카페모카", "라떼", "카푸치노" };

4) 네 번째 방법

String[] coffees = { "아메리카노", "카페모카", "라떼", "카푸치노" };

주문

System.out.println(coffees[0] + " 하나");                 // 아메리카노 하나
System.out.println(coffees[1] + " 하나");                 // 카페모카 하나
coffees[2] = "에스프레소";                                  // 값 변경
System.out.println(coffees[2] + " 하나");
System.out.println(coffees[3] + " 하나");
System.out.println("주세요");

5) 다른 자료형 예시

int[] i = new int[3];
i[0] = 1;
i[1] = 2;
i[2] = 3;
double[] d = new double[] {10.0, 11.2, 13.5};
boolean[] b = {true, true, false};

 

2. 배열문 순회

String[] coffees = { "아메리카노", "카페모카", "라떼", "카푸치노" };

1) For 반복문 순회

for (int i = 0; i < 4; i++) {
    System.out.println(coffees[i] + " 하나");
}
System.out.println("주세요");                  // 배열 각각 한 번씩 순회하면서 출력

2) 배열의 길이를 이용한 순회

for (int i = 0; i < coffees.length; i++) {   // 길이는 4/ 3 아님
    System.out.println(coffees[i] + " 하나");
}
System.out.println("주세요");

3) Enhanced For (foreach) 반복문

for (String coffee : coffees) {
    System.out.println(coffee + " 하나");
}
System.out.println("주세요");
// foreach 쓰는 법
/*
for (String coffee :
        coffees) {
    System.out.println(coffee + " 하나");
}
*/

3. 다차원 배열

String[] seatA = {"A1", "A2", "A3", "A4", "A5"};
String[] seatB = {"B1", "B2", "B3", "B4", "B5"};
String[] seatC = {"C1", "C2", "C3", "C4", "C5"};

// 3 × 5 크기의 2차원 배열
String[][] seats = new String[][] {                 // 1차원 배열들을 세 줄로 나눠 콤마 추가
        {"A1", "A2", "A3", "A4", "A5"},
        {"B1", "B2", "B3", "B4", "B5"},
        {"C1", "C2", "C3", "C4", "C5"}
};

// B2에 접근하려면?
System.out.println(seats[1][1]);

// C5에 접근하려면?
System.out.println(seats[2][4]);

// 첫 줄에는 3칸, 둘 째줄에는 4칸, 셋 째 줄에는 5칸
String[][] seats2 = {
        {"A1", "A2", "A3"},
        {"B1", "B2", "B3", "B4"},
        {"C1", "C2", "C3", "C4", "C5"}
};

// A3 에 접근하려면?
System.out.println(seats2[0][2]);

// A5 에 접근하려면?
// System.out.println(seats2[0][4]);               // 접근 불가

// 3차원 배열 만들기
//String[][][] marray = new String[][][] {
//        {{}, {}, {}},
//        {{}, {}, {}},
//        {{}, {}, {}}
//};
// 아니면,
//String[][][] marray = new String[3][3][3];

4. 다차원 배열 순회

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] + " ");// 띄어 쓰기 추가, 안에 한번 더 for문을 넣으면 3차원 가능
    }
    System.out.println();

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++) {    // 가로, 각 i별 길이에 맞게 순회
        System.out.print(seats[i][j] + " ");
    }
    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"};
for (int i = 0; i < seats3.length; i++) {               // 세로
    for (int j = 0; j < seats3[i].length; j++) {        // 가로
        seats3[i][j] = eng[i] + (j + 1);
    }
}

// 표 구매
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++) {    // 가로, 각 i별 길이에 맞게 순회
        System.out.print(seats3[i][j] + " ");
    }
    System.out.println();
}

출력 값

A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 
E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 
G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12 G13 G14 G15 
H1 H2 H3 H4 H5 H6 H7 H8 __ ___ H11 H12 H13 H14 H15 
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 
J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 J11 J12 J13 J14 J15 

 

5. 아스키 코드

ASCII (American Standard Code for Information Interchange, 미국정보교환표준부호) 

1) 예시

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

c = 'a';
System.out.println(c);              // a
System.out.println((int) c);         // 97

c = 'b';
System.out.println(c);             // b
System.out.println((int) c);        // 98

c++;
System.out.println(c);              // c
System.out.println((int) c);         // 99

c = '0';
System.out.println(c);             // 0
System.out.println((int) c);        // 48

2) 아스키코드 활용

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++) {    // 가로, 각 i별 길이에 맞게 순회
        System.out.print(seats3[i][j] + " ");
    }
    System.out.println();
}

 

'Development' 카테고리의 다른 글

(Java) Chapter6. Method  (0) 2023.01.08
(Java) Chapter4. 제어문  (0) 2023.01.04
(Java) Chapter3. 문자열  (0) 2023.01.04
(Java) Chapter 1 환경설정 및 자료형  (0) 2023.01.03