2020. 4. 7. 16:55ㆍJAVA
이전 포스팅에서는 배열에 대해서, 이번 포스팅 에는 배열의 응용에 대해서 문제 풀이 형식으로 다뤄보겠다.
Q. 배열을 통해 다섯 가지 난수를 입력받아 최댓값, 최솟값 구하기
우선, 첫번째로 필요한 변수를 선언해 준다.
사용자가 입력한 다섯 가지 난수를 담을 수 있는 배열 - int arrayFormaxmin [] = new int [5];
다섯 가지 난수를 비교하여 최댓값, 최솟값을 담을 수 있는 변수 - int max, min;
마지막으로, 사용자의 입력값을 받을수 있게 자바 표준 입력 클래스인 Scanner를 사용한다.
- Scanner scn = new Scanner(System.in);
그리고 반복문(for) 을 이용해 사용자가 입력한 다섯 가지 값을 배열(arrayFormaxmin)에 담는다.
반복문(for) 에서는 반복문 변수 i를 0으로 초기화 시켜주고, .length 를 사용하여 생성한 배열의 크기만큼 반복할 수 있게 설정한다.
이를 통해 총 5회 반복 하는 것을 알 수 있으며, 반복하는 동안 사용자가 입력한 값을 반복문에 넣어준다.
arrayFormaxmin [i] = scn.nextInt();
배열 인덱스 값에 반복문에서 선언한 변수 i를 넣어준다. 이렇게 해주면 차례대로 입력값을 인덱스에 저장할 것이다.
ex)
입력한 다섯가지 숫자 : 12, 14, 16, 17, 20
arrayFormaxmin[i] = scn.nextInt(); 를 통해
arrayFormaxmin[0] = 12;
arrayFormaxmin[1] = 14;
arrayFormaxmin[2] = 16;
arrayFormaxmin[3] = 17;
arrayFormaxmin[4] = 20;
라는 결과값이 나올 것이다.
여기서 for문 변수 i 를 0으로 초기화한 이유는 인덱스에 값은 0부터 카운트한다는 점 때문이란 걸 명심해 두자.
이제 사용자의 다섯가지 숫자를 입력받은 배열을 입력받은 숫자를 비교하여 최대, 소 값을 구해주면 된다.
이제 max 와 min 값을 비교해야 하기 때문에 임의로 배열의 0번째 인덱스 인 값을 넣어준다. 이때 배열의 인덱스 값을 임의적으로 넣는 이유는 아무 숫자나 넣게 된다면 그 숫자가 최댓값, 최솟값이 될 수 있으므로 그런 오류를 피해주기 위하여 배열 인덱스 값으로 설정한다.
다시 한번 반복문(for) 문을 사용하여 배열의 크기만큼 반복 횟수를 설정하고 - for(int i =0; arrayFormaxmin.length; i++)
for 문 안에 조건문(if) 를 이용하여
최댓값(max), 최솟값(min)을 구한다.
조건문(if)의 조건문으로는 첫번째 값 인덱스 0부터 비교하여 현재 max의 값보다 클 경우 max의 값에 현재 배열의 인덱스 값을 넣어준다.
- if(max < arrayFormaxmin[i]){
max = arrayFormaxmin[i];
}
반대로 최솟값(min)의 조건문으로는 현재 배열의 인덱스 값이 min 보다 작을 경우 그 배열의 인덱스 값을 최솟값(min)에게 넣어준다.
- if(min > arrayFormaxmin[i]){
min = arrayFormaxmin[i];
}
이를 통해 구해준 값을 출력해 준다.
출력된 값
정상적으로 출력되는 것을 알 수 있다.
'JAVA' 카테고리의 다른 글
[JAVA] Map(HashMap) (1) | 2020.04.22 |
---|---|
[JAVA] List - ArrayList (2) | 2020.04.12 |
[JAVA] 배열(Array) (0) | 2020.04.07 |
[JAVA] 변수(variable)의 종류 (0) | 2020.03.26 |
[JAVA] 변수(variable) & 상수(Constant) (0) | 2020.03.24 |