배열을 어떻게 활용해야 할까?
활용예제 1) 총합과 평균 - 배열의 모든 요소를 더해서 총합과 평균을 구한다.
package ch01;
public class Ex5_2 {
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);
} // end of main
} // end of class
[결과]
총합 : 478
평균 : 95.6
활용예제 2) 최대값과 최소값 - 배열의 요소 중에서 제일 큰 값과 제일 작은 값을 찾는다.
package ch01;
public class Ex5_3 {
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++) { // 배열의 두번째 요소부터 읽기 위해 변수i 값을 1로 초기화
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);
} // end of main
} // end of class
- 배열의 첫 번째 요소 'score[0]'의 값으로 최대값을 의미하는 변수 max 최소값을 의미하는 변수 min을 초기화
- 반복문을 통해 배열의 두 번째 요소 score[1]부터 max와 비교
- 만일 배열에 담긴 값이 max에 저장된 값보다 크면 이 값을 max에 저장
- 배열의 마지막까지 비교하고 나면 max에는 배열에 담긴 값 중 가장 큰 값이 저장
[결과]
최대값 : 100
최소값 : 33
활용예제 3) 섞기 - 배열의 요소의 순서를 반복해서 바꾼다. (숫자 섞기, 로또 번호 생성)
package ch01;
import java.util.Arrays;
public class Ex5_4 {
public static void main(String[] args) {
int[] numArr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println(Arrays.toString(numArr));
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; // numArr[0]과 numArr[n]의 값을 서로 바꾼다.
}
System.out.println(Arrays.toString(numArr));
} // end of main
} // end of class
- 만약 random()을 통해 얻은 n값이 3이라면 아래와 같다.
package ch01;
public class Ex5_5 {
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 tmp = 0; // 두 값을 바꾸는데 사용할 임시변수지정
int j = 0; // 임의의 값을 얻어서 저장할 변수
// 배열의 i번째 요소와 임의의 요소에 저장된 값을 서로 바꿔서 값을 섞는다.
// 0번째 부터 5번째 요소까지 모두 6개만 바꾼다.
for(int i = 0; i < 6; i++) {
j = (int)(Math.random() * 45); // 0 ~ 44 범위의 임의의 값을 얻는다.
tmp = ball[i];
ball[i] = ball[j];
ball[j] = tmp; // ball[i] 와 ball[j]의 값을 서로 바꾼다.
}
// 배열 ball의 앞에서부터 6개의 요소를 출력
for(int i = 0; i < 6; i++) {
System.out.printf("ball[%d]=%d%n", i, ball[i]);
}
}
}
'Java > Java 연습문제' 카테고리의 다른 글
break문과 continue 문 예제 (0) | 2023.08.12 |
---|---|
[JAVA] 매개변수의 다형성 연습 (0) | 2023.08.11 |
[JAVA] 상속 구조로 클래스 만들어보기 (0) | 2023.08.08 |
[JAVA] 클래스 정의 및 활용 실습 (0) | 2023.07.28 |
[JAVA] 멤버변수와 메서드를 활용한 실습 (0) | 2023.07.28 |