2주차 미션은 swich문 손코딩하기!
swich-case
문은 원하는 조건을 선택하여 반복하는 반복문이다.
위 예제는 1~6까지의 숫자를 랜덤으로 나오는 주사위를 돌렸을 때 어떤 숫자가 나왔는지 알려주는 문제이다.
case
에서 1~6 중의 숫자의 조건을 출력한다.
ex) num
에서 2가 나왔으면 case 2
의 출력문이 나온다.
(음료주 자판기에서 원하는 음료 버튼을 눌러 뽑는 느낌이랑 비슷하다.)
선택 미션
(p.202 05-2 확인 문제 6번 풀고 정리하기)
.
.
풀이 코드
package sec02.exam11;
import java.util.Scanner;
public class Exercise06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean run = true;
int studentNum = 0;
int[] scores = null;
while(run) {
System.out.println("--------------------------------------------------");
System.out.println("1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료");
System.out.println("--------------------------------------------------");
System.out.print("선택> ");
int selectNo = Integer.parseInt(sc.nextLine());
if(selectNo == 1) {
System.out.print("학생수> ");
studentNum = Integer.parseInt(sc.nextLine());
scores = new int[studentNum];
}
else if(selectNo == 2) {
for(int i=0; i<scores.length; i++) {
System.out.print("scores[" + i + "]> ");
scores[i] = Integer.parseInt(sc.nextLine());
}
}
else if(selectNo == 3) {
for(int i=0; i<scores.length; i++) {
System.out.println("scores[" + i + "]> " + scores[i]);
}
}
else if(selectNo == 4) {
System.out.print("최고 점수: ");
int max = 0;
for(int i=0; i<scores.length; i++) {
if(scores[i]>max) {
max = scores[i];
}
}
System.out.println(max);
double avg = 0;
int sum = 0;
System.out.print("평균 점수: ");
for(int i=0; i<scores.length; i++) {
sum += scores[i];
}
avg = (double)sum/studentNum;
System.out.println(avg);
}
else if(selectNo == 5) {
run = false;
}
}
System.err.println("프로그램 종료");
}
}
.
.
결과
배열이 좀 어렵기는 했지만 변수를 많이 사용해야할 경우 배열 하나로 깔끔한 코드를 짤 수 있어서 좋았다. 위 선택 문제도 앞에서 배운 반복문(for, while)과 조건문(if)을 사용하면서 배열도 같이 사용하여 문제를 풀어볼 수 있어서 신기하고 재미있었다.