배열의 활용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] args) {
int sum =0; // 총점을 저장하기 위한 변수
float average = 0f; // 평균을 저장하기 위한 변수
int[] score = {100, 88, 100, 100, 90};
for (int i=0; i < score.length ; i++ ) {
sum += score[i];
}
average = sum / (float)score.length ; // 계산결과를 float로 얻기위해서 형변환
System.out.println("총점 : " + sum);
System.out.println("평균 : " + average);
}
실행결과:
총점 : 478
평균 : 95.6
for문을 이용해서 배열에 저장된 값을 모두 더한 결과를 배열의 개수로 나누어서 평균을 구하는 예제이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] args) {
int[] score = { 79, 88, 91, 33, 100, 55, 95};
int max = score[0]; // 배열의 첫번째 값으로 최대값을 초기화한다.
int min = score[0]; // 배열의 첫번째 값으로 최소값을 초기화한다.
for(int i=1; i < score.length;i++) {
if(score[i] > max) {
max = score[i];
} else if(score[i] < min) {
min = score[i];
}
} // end of for
System.out.println("최대값 :" + max);
System.out.println("최소값 :" + min);
}
배열에 저장된 값 중에서 최대값과 최소값을 구하는 예제이다. 반복문을 통해서 배열의 두번 쨰 요소 score[2]와 max와 비교하기 시작하고 저장된 값보다 크면 max에 저장된다. 이런식으로 배열의 마지막 요소까지 비교하고 나면 max에는 배열에 담긴 값중에서 최대값이 저장된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static void main(String[] args) {
int[] numArr = new int[10];
for (int i=0; i < numArr.length ; i++ ) {
numArr[i] = i; // 배열을 0~9의 숫자로 초기화 한다.
System.out.print(numArr[i]);
}
System.out.println();
for (int i=0; i < 100; i++ ) {
int n = (int)(Math.random() * 10); // 0~9중의 한 값을 임의로 얻는다.
int tmp = numArr[0];
numArr[0] = numArr[n];
numArr[n] = tmp;
}
for (int i=0; i < numArr.length ; i++ )
System.out.print(numArr[i]);
} // main의 끝
길이가 10인 배열 numArr을 생성하고 0~9의 숫자로 차례대로 초기화 하여 출력한다.
그 다음 random()을 이용해서 배열의 임의의 위치에 있는 값과 배열의 첫 번째 요소인 ‘nurArr[0]’의 값을 교환하는 일을 100번 반복한다.
이 작업을 반복적으로 수행하면, 배열의 값들이 뒤섞이게 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static void main(String[] args) {
int[] ball = new int[45]; //45개의 정수값을 저장하기 위한 배열 생성
.//배열의 각 요소에 1~45의 값을 저장한다.
for(int i=0; i < ball.length; i++)
ball[i] = i+1; // ball[0]에 1이 저장된다.
int temp = 0; // 두 값을 바꾸는데 사용할 임시 변수
int j = 0; // 임의의 값을 얻어서 저장할 변수
// 배열의 i번쨰 요소와 임의의 요소에 저장된 값을 서로 바꿔서 값을 섞는다.
// 0에서 5번째 요소까지 모두 6개만 바꾼다.
for(int i=0; i < 6; i++) {
j = (int)(Math.random() * 45); // 0~44범위의 임의의 값을 얻는다.
temp = ball[i];
ball[i] = ball[j];
ball[j] = temp;
}
// 迭 ball տ 6 Ҹ Ѵ .
for(int i=0; i < 6; i++)
System.out.printf("ball[%d]=%d%n", i, ball[i]);
}
로또 번호를 생성하는 예제이다. 길이가 45인 배열에 1부터 45까지의 값을 담은 다음 반복문을 이용해서
배열의 인덱스가 i인 값 과 random에 의해서 결정된 임의의 위치에 있는 값과 바꾸는 것을 6번 반복한다.
이것은 1부터 45까지의 번호가쓰인 카드를 잘 섞은 다음 맨위의 6장을 꺼내는 것과 같다고 할 수 있다.