2차원 배열
2차원 배열은 줄에 대한 인덱스와 칸에 대한 인덱스가 있다.
타입 식별자는 [ ][ ];
2차원 배열의 선언 방식
2차원 배열 선언1
int arr[ ][ ]; //선언
arr = new int[3][4]; // arr.length 몇줄 arr[i].length i번째줄의 몇칸
arr[0][0] arr[0][1] arr[0][2] arr[0][3]
arr[1][0] arr[1][1] arr[1][2] arr[1][3]
arr[2][0] arr[2][1] arr[2][2] arr[2][3]
2차원 배열은 이중 for문으로 액세스할 수 있다.
for(int i = 0; i < arr.length; i++){ //줄
for(int j = 0; j < arr[i].length; j++){ //칸
// arr[i][j] 변수 사용시 줄과 칸 표시
2차원 배열 선언2
int arr[][] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} }; {}가 3개니 3줄, 중괄호 안이 칸, 4칸씩
int arr[][] ={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
for(int i=0; i<arr.length; i++){ //줄
for(int j=0; j<arr[i].length; j++){ //칸
System.out.print(" a["+i+"]["+j+"] = "+arr[i][j]);
}
System.out.println();
}
for(int i=0; i<arr.length; i++){ //줄
for(int j=0; j<arr[i].length; j++){ //칸
System.out.print(" a["+i+"]["+j+"] = "+arr[i][j]);
}
System.out.println();
}
2차원 배열 문제 1.
1) 2번째 줄의 데이터만 출력
2) 2번째 줄의 합계
int arr[][] ={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int i=1, sum=0; //줄이 일정하므로 for가 필요없음. 2번줄이니 인덱스1부터 시작
for(int j=0; j<arr[i].length; j++){ //칸
System.out.print(" a["+i+"]["+j+"] = "+arr[i][j]+" "); //2번줄만출력
sum += arr[i][j]; //2번줄의 합계
}
System.out.println(" total ="+sum);
}
3) 1번째 줄에서 홀수만 출력
int arr[][] ={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int i=0, sum = 0; //1번줄의 인덱스는 0
for(int j=0; j<arr[i].length; j++){ //칸
if(arr[i][j]%2==1)
System.out.println(arr[i][j]); //1번줄의 홀수만출력
}
2차원 배열 문제 2,
1m 2m 3m 4m 5m
사원1 30 40 50 12 33
사원2 45 40 33 13 30
사원3 11 43 52 34 11
1m 2m 3m 4m 5m
사원1 30 40 50 12 33
사원2 45 40 33 13 30
사원3 11 43 52 34 11
위의 값을 2차 배열에 저장하고 아래 문제를 푸시오.
1) 3월의 사원별 실적 출력
사원1 50
사원2 33
사원3 52
2) 3월의 실적 합계와 평균 출력
3) 3월에 실적이 제일 큰 사원원 정보 출력
사원3 52
public static void main(String[] args) {
int arr[][] = {{30, 40, 50, 12, 33},
{45, 40, 33, 13, 30},
{11, 43, 52, 34, 11}
};
int j=2, sum=0; double avg=0.0;
int max=0, maxnum=0;
for(int i=0;i<arr.length;i++){
System.out.println("3월의 사원(" + (i+1) + ") "+arr[i][j]);
sum += arr[i][j]; //총점
avg = sum/arr.length; //평균
if(arr[i][j] > max) {
max=arr[i][j]; maxnum=i+1;
}
}
System.out.println("3월의 총점 = "+sum);
System.out.println("3월의 평균 = "+avg);
System.out.println("실적이 제일 큰 사원 사번 "+maxnum+", 점수 : "+max);
}
'자바의 기초문법' 카테고리의 다른 글
객체와 클래스: 클래스 선언, 생성자 (0) | 2015.12.15 |
---|---|
Scanner를 이용한 if, for, array 예제 (0) | 2015.12.14 |
1차원 배열 (0) | 2015.12.13 |
반복문 while (0) | 2015.12.12 |
이중 for문을 이용한 응용 예제 (0) | 2015.12.12 |