Contents
래그드 배열안의 값을 바꿀 수는 있지만 배열의 구조 변경은 불가능 하다.
2차원 배열을 이용하여 극장의 관객들을 표현할 수 있다. 관객이 있는 좌석은 1로, 관객이 없는 좌석은 0으로 나타낸다.
이때, 각 행의 관객 수와 총 관객 수를 구하는 프로그램을 만들어보자
먼저 2차원 배열을 작성한다.
int[][] seats = {
{0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 1, 1, 0}
};
첫 번째 행의 관객 수를 구하는 코드를 작성한다.
int sum = 0;
int count;
int[] seat1 = seats[0];
count = 0;
for (int i = 0; i < seat1.length; i++) {
count = count + seat1[i];
}
System.out.println("첫번째 항의 관객수는 : " + count);
sum = sum + count;
두 번째, 세 번째 행의 관객 수를 구하는 코드를 첫 번째를 참고하여 작성
int[] seat2 = seats[1];
count = 0;
for (int i = 0; i < seat2.length; i++) {
count = count + seat2[i];
}
System.out.println("두번째 항의 관객수는 : " + count);
sum = sum + count;
int[] seat3 = seats[2];
count = 0;
for (int i = 0; i < seat3.length; i++) {
count = count + seat3[i];
}
System.out.println("세번째 항의 관객수는 : " + count);
sum = sum + count;
System.out.println("총 관객 수는 : "+ sum );
코드를 모듈화 한다.
package ex03;
public class TheaterSeats {
public static void main(String[] args) {
int[][] seats = {
{0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 1, 1, 0}
};
int sum = 0;
int count;
int row = -1;
row ++;
count = 0;
for (int i = 0; i < seats[row].length; i++) {
count = count + seats[row][i];
}
System.out.println(row+" 행의 관객수는 : " + count);
sum = sum + count;
row ++;
count = 0;
for (int i = 0; i < seats[row].length; i++) {
count = count + seats[row][i];
}
System.out.println(row+" 행의 관객수는 : " + count);
sum = sum + count;
row ++;
count = 0;
for (int i = 0; i < seats[row].length; i++) {
count = count + seats[row][i];
}
System.out.println(row+" 행의 관객수는 : " + count);
sum = sum + count;
System.out.println("총 관객 수는 : "+ sum );
}
}
모듈화된 코드를 for문으로 바꾼다.
package ex03;
public class TheaterSeats {
public static void main(String[] args) {
int[][] seats = {
{0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 1, 1, 0}
};
int sum = 0;
int count;
for (int row = 0; row < seats.length ; row++) {
count = 0;
for (int i = 0; i < seats[row].length; i++) {
count = count + seats[row][i];
}
System.out.println(row+1 + " 행의 관객수는 : " + count);
sum = sum + count;
}
System.out.println("총 관객수 : "+sum);
// row ++;
// count = 0;
// for (int i = 0; i < seats[row].length; i++) {
//
// count = count + seats[row][i];
// }
// System.out.println(row+" 행의 관객수는 : " + count);
// sum = sum + count;
//
//
// row ++;
// count = 0;
// for (int i = 0; i < seats[row].length; i++) {
//
// count = count + seats[row][i];
// }
// System.out.println(row+" 행의 관객수는 : " + count);
// sum = sum + count;
//
// System.out.println("총 관객 수는 : "+ sum );
}
}
래그드 배열
배열의 배열로 행마다 길이가 다르다.
package ex03;
import java.util.Arrays;
public class RaggedArray2 {
public static void main(String[] args) {
int[][] rarray = new int[3][];
rarray[0] = new int[] {1, 2, 3, 4};
rarray[1] = new int[] {5, 6, 7};
rarray[2] = new int[] {8, 9};
for (int[] row : rarray) {
System.out.println(Arrays.toString(row));
}
}
}
Share article