배열은 총합과 평균, 최대값과 최소값, 섞기(shuffle) 등으로 활용할 수 있다.
1. 배열을 이용해 총합과 평균 구하기
배열의 모든 요소를 더하여 총합과 평균을 배열을 통해 구할 수 있다.
① 총합을 저장할 변수 sum과 평균을 저장할 변수 average를 선언한다.
② 배열 score를 선언 'int[] score' 하고 초기화{100, 88, 100, 100, 90} 한다.
③ for문의 i의 초기값은 0으로 두고 (배열의 요소는 0부터 시작하기 때문)
조건식은 i < score.length 로 설정하여 배열길이-1 이 된다.
④ for문의 조건식이 참일동안 sum에 score의 각 요소의 값이 중첩되어 더해진다.
- i 가 0일 때 score의 1번째 요소값 100값이 sum에 더해진다.
- i 가 1일 때 score의 2번째 요소값 88값이 sum에 추가로 더해진다.
...
- i 가 4일 때 score의 5번째 요소값 90값이 sum에 추가로 더해진다.
→ 총합 (sum)
⑤ average = sum / (float) score.length ;
총합을 배열의 길이로 나누어 평균값을 average에 저장한다.
* 주의 *
average의 변수 타입은 float이므로 sum이나 score.length에 형 변환을 해주어야 한다.
→ 평균 (average)
2. 배열을 이용해 최대값과 최소값 구하기
배열의 요소 중 제일 큰 값과 제일 작은 값을 배열을 통해 찾을 수 있다.
① int max = score[0];
int min = score[0];
배열의 첫번째 요소 score[0]의 값으로 최대값 변수 max와 최소값 변수 min을 초기화 한다.
② for(int i = 1; i < score.length; i++)
위에서 socre[0]의 값으로 초기화 했기 때문에 for문에서 i의 초기값을 1로 둔다.
조건식은 i < score.length 로 설정하여 배열 길이-1이 된다.
③ if (score[i] > max)
max = score[i];
for문의 i의 값이 증가할 수록 score[i]로 요소 번호에 따라서 max보다 크다면 max의 값을 score[i]로 바꾸어 준다.
하지만 score[i]가 max보다 크지 않다면 아래 else if문으로 내려가서 조건식 확인 후 실행.
→ 최대값 (max)
④ } else if(score[i] < min)
min = score[i];
이번엔 score[i]가 min의 값보다 작다면 score[i]의 값을 min에 저장한다.
→ 최소값 (min)
3. 배열을 이용해 섞기(shuffle)
배열의 요소의 순서를 반복하여 바꾼다. (숫자 섞기, 로또번호 생성)
① 0 부터 9까지의 요소로 배열을 생성한다.
② for문으로 아래 작업을 100번 반복한다.
int n = (int) (Math.random() * 10);
0 ~ 9의 값을 랜덤으로 n의 값에 정수형태로 저장한다.
int tmp = numArr[0];
tmp라는 새로운 변수에 numArr의 0번째 요소를 저장하고
numArr[0] = numArr[n];
그 자리에 n (0 ~ 9 범위의 임의의 수) 를 저장한다.
numArr[n] = tmp;
그리고 tmp에 저장해두었던 값을 n번째 요소(임의의 값으로 나온 값의 요소번호)에 저장한다.
→ 2번 작업을 for문을 통해 서로 값을 바꾸는 작업이 100번 반복되어 0 ~ 9 범위의 10가지 숫자가 섞인다.
→ 섞기 (shuffle)
'Programming > Java' 카테고리의 다른 글
[Java] 배열(Array) - String 배열, String 클래스, String 메서드, 2차원 배열 (1) | 2020.04.23 |
---|---|
[Java] 배열(Array) - 선언과 생성, 인덱스, 길이(.length), 초기화, 출력 (0) | 2020.04.19 |
[Java] for문(반복문)을 이용해 별찍기 (1) | 2020.04.16 |
[Java] 반복문으로 중첩 덧셈하기 (for문 활용) (0) | 2020.04.16 |
[Java] 반복문 (for, while) 개념 및 활용 예제 (1) | 2020.04.13 |