전체코드
import java.util.Scanner; public class Array_max2 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] score = new int[10]; //점수 입력 for문 for(int i=0; i<score.length; i++) { score[i] = scan.nextInt(); // score를 입력받는다 while((score[i]<0) || (score[i]>100)){ // score의 범위가 잘못되었을 때 System.out.println("숫자의 범위가 초과되었습니다."); // 경고 메세지 System.out.print("0~100까지의 숫자를 다시 입력해주세요 : "); score[i] = scan.nextInt(); // 다시 입력함 } } int max = score[0]; //최대값을 구하는 for문 for(int i=1; i<score.length; i++) { if(max<score[i]) { max=score[i]; } } System.out.println("max = " + max); } }
int[] score = new int[10];
for(int i=0; i<score.length; i++){
score[i] = scan.nextInt();
//여기까지는 점수의 범위를 고려하지 않고 짠 코드이다.
//잘못된 범위를 입력했을 때 그 점수를 다시 입력하게 하는 코드를 짜보자
while(score[i]<0 || score[i]>100){
System.out.println("잘못된 점수를 입력하셨습니다.");
System.out.print("0~100 사이의 점수를 입력해주세요");
score[i] = scan.nextInt();
}
}
while (score[i] < 0 || score[i] > 100)
while문은 참일 때 문장들이 수행된다. 만약 0~100 밖의 숫자들이 입력되면 while문의 문장들을 수행한다.
System.out.println("잘못된 점수를 입력하셨습니다."); System.out.print("0~100 사이의 점수를 입력해주세요");
score[i] = scan.nextInt();
경고 메세지를 출력한 뒤 잘못된 입력된 점수를 다시 입력받는다.
int max = score[0];
max는 첫 번째 배열의 값으로 초기화 해준다.
for(int i=1; i<score.length; i++) {
if(max<score[i]) {
max=score[i];
}
}
max, 즉 배열의 첫 번째 값부터 10번째 값을 비교하면서 max보다 큰 값이 있으면 그 값을 max에 넣어준다.
예를 들어 max의 값이 10이고 두 번재 배열의 값이 20이라면 두 번째 배열의 값이 max가 된다.
max가 20이 된 상태에서 세 번째 배열의 값과 max를 비교한다. 만약 세 번째 배열의 값이 3이라면 max의 값은 20으로 유지된다.
이러한 방법으로 마지막에 max에 가장 큰 값이 저장된다.
System.out.println("max = " + max);