switch문
[문제 풀이]
1~6 까지의 범위 안에서 랜덤한 숫자를 산출하여 num변수에 저장된다.
switch문에 따라 해당하는 변수 값과 동일한 값을 갖는 case로 가서 실행문이 실행된다.
변수 값이 해당하는 case와 동일한 값이 없다면 default로 가서 실행문이 실행된다.
package sec02.verify.exam06;
import java.util.Scanner;
public class Exam06 {
public static void main(String[] args) {
boolean run = true;
int studentNum = 0;
int[] scores = null;
Scanner scanner = new Scanner(System.in);
while(run) {
System.out.println("======================================================");
System.out.println("1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료");
System.out.println("======================================================");
System.out.print("선택>");
int selectNo = Integer.parseInt(scanner.nextLine());
if (selectNo == 1) {
System.out.print("학생수>");
studentNum = Integer.parseInt(scanner.nextLine());
scores = new int[studentNum];
} else if (selectNo == 2) {
for(int i = 0; i < studentNum; i++) {
System.out.print("scores[" + i + "]>");
scores[i] = Integer.parseInt(scanner.nextLine());
}
} else if (selectNo == 3) {
for(int i = 0; i < studentNum; i++) {
System.out.println("scores[" + i + "]> " + scores[i]);
}
} else if (selectNo == 4) {
int max = 0;
int sum = 0;
for(int i = 0; i < studentNum; i++) {
sum += scores[i];
if (max < scores[i]) {
max = scores[i];
}
}
double avg = (double) sum / studentNum;
System.out.println("최고 점수: " + max);
System.out.println("평균 점수: " + avg);
} else if (selectNo == 5) {
run = false;
}
}
System.out.println("프로그램 종료");
}
}
실행 결과
[문제 풀이]
boolean 타입인 run 변수를 true로 초기화하여 프로그램을 계속 실행한다.
studentNum 변수에 학생 수를 저장하고 scores 변수에 학생의 점수를 저장할 배열을 초기화 한다.
메뉴룰 출력하여 Scanner 객체를 통해 사용자의 입력을 받아 if와 else-if문을 통해 사용자가 입력한 숫자를 통해 해당하는 메뉴를 실행한다.
1번 메뉴 : 학생 수를 입력받아 그 크기에 맞는 scores배열을 생성한다.
2번 메뉴 : 학생 수에 따른 점수를 입력받아 scores배열에 저장한다.
3번 메뉴 : 입력한 점수의 리스트를 출력한다.
4번 메뉴 : 최고 점수와 평균을 계산하여 출력한다.
5번 메뉴 : run 변수에 false로 초기화 하여 프로그램을 종료한다.