-
Java 배열을 이용한 합계/평균, 최대값/최소값, 섞기(Shuffle)개발 완료 2020. 3. 27. 23:31반응형
목적
- Java 배열 "[]"를 이용해서 다양한 코드를 짜본다
1. 시험성적의 총합계 / 평균 구하기
public class Main { public static void main(String[] args) { int sum = 0; float average = 0f; int[] score = {70, 88, 95, 100, 65}; for (int i = 0; i < score.length; i++) { sum += score[i]; } average = sum / (float)score.length; System.out.println("총합: " + sum); System.out.println("평균: " + average); } }
- 합계 = int sum, 점수 평균 = float average로 초기화
- sum에 score 배열의 요소를 하나하나 가져와서 더함
- score 배열의 길은 5이므로, 총 합계에서 5를 나눈다 (소수점까지 나타내기 위해 float 형변환)
2. 배열의 최댓값 / 최솟값 구하기
public class Main1 { public static void main(String[] args) { int[] num = {70, 88, 91, 33, 100, 55, 95}; int max = num[0]; int min = num[0]; for (int i = 1; i < num.length; i++) { if(num[i] > max) { max = num[i]; System.out.println("Max >>> " + max); } else if(num[i] < min) { min = num[i]; System.out.println("Min >>> " + min); } } System.out.println("\n" + "Final Max >>> " + max); System.out.println("Final Min >>> " + min); } }
- num 배열에 요소들을 저장
- num[0] = 70(Max값), num[1] = 88, 즉 88이 max값으로 바뀐다
- num[0] = 70, num[2] = 91, 즉 max는 91로 바뀐다
- num[0] = 70(Min값), num[3] = 33, 즉 min값이 33으로 바뀐다
- 현재 max 값은 91, min 값은 33이다
- 배열의 길이만큼 반복 후 결과
중간에 Max, Min값을 모두 출력한 이유는 변하는 과정을 눈으로 쉽게 보기 위함 입니다. 코드에 꼭 필요한 부분은 아닙니다.
3. 섞기(Shuffle)
package Java_Study; import java.util.Arrays; public class Main2 { public static void main(String[] args) { int[] num = {0,1,2,3,4,5,6,7,8,9}; System.out.println("Original num >>> " + Arrays.toString(num)); System.out.println(); for (int i = 0; i < 100; i++) { int n = (int)(Math.random() * 10); int tmp = num[0]; num[0] = num[n]; num[n] = tmp; System.out.println("num >>> " + Arrays.toString(num)); } System.out.println(); System.out.println("Final num >>> " + Arrays.toString(num)); } }
for문을 중점적으로 설명하겠습니다.
여기서 tmp 변수는 숫자들을 섞기 위해서 잠시 대기 시켜놓는 공간이라고 생각하시면 됩니다.
중간에 print와 toString 메서드는 꼭 필요하지 않지만, 진행과정을 한눈에 보기 쉽게 해줍니다.
- "int n" 변수에 0 ~ 9까지의 무작위 정수를 입력합니다
- "int tmp" 변수에 num 배열의 첫 번째 숫자, 즉 0을 넣습니다
- 빈 num[0] 배열에 무작위 정수인 n을 넣습니다. 만약에 num[0] = num[7]이 된다면, 원래의 0이 6로 대체됩니다
- tmp에 잠시 대기시켜 놓은 0을 num[7] 배열에 넣습니다
- 그래서 첫 번째 결과물을 보면 [6, 1, 2, 3, 4, 5, 0, 7, 8, 9] 입니다. 6과 0의 위치가 바뀐 것을 볼 수 있습니다
4. 수정 사항2020년 12월 16일 - 문장 변경 및 다듬기
5. 출처
책 '자바의 정석 기초편'
반응형'개발 완료' 카테고리의 다른 글
(Java)자바로 가위바위보 게임 만들기(1) (0) 2020.04.02 Java 배열을 이용해서 로또번호 추첨 (0) 2020.03.28 Java 특정배수가 아닌 값의 총합 (0) 2020.03.17 Java 다양한 구구단 만들기 (0) 2020.03.17 (for문)자바로 별 찍기 (0) 2020.03.16