[Java] tip: 성적 프로그램 만들기 (Scanner, if문, switch문)

febCho·2023년 10월 4일
0

Java

목록 보기
13/53
package kr.s05.operation;

public class SwitchMain03 {
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);
		int score;
		char grade;
		
		System.out.print("성적 입력> ");
		score = input.nextInt();
		
		if(score < 0 || score > 100) {
			System.out.println("성적은 0~100만 입력 가능");
			System.exit(0);//프로그램 종료
		}
		
        switch(score/10) {
		case 10:
			grade = 'A'; break;
		case 9:
			grade = 'A'; break;
		case 8:
			grade = 'B'; break;
		case 7:
			grade = 'C'; break;
		case 6:
			grade = 'D'; break;
		default://0~59
			grade = 'F';
		}
		
		System.out.println();//단순 줄바꿈 > 아무 것도 안 넣으면 가능
		System.out.printf("성적 : %d%n", score);
		System.out.printf("등급 : %c%n", grade);
		
		input.close();
	}
}
  1. switch문에서 위와 같이 케이스가 많이 발생하는 경우, 케이스를 줄이기 위해 연산이 필요하다.
    ex.
switch(score) {
case 100:
case 99:
case 98:
.
.
.

→ 이렇게 0까지의 케이스에 대한 코드를 전부 작성해야 한다면 매우 불편하다. 그렇기 때문에 나누기 10을 통해 범위에 해당하는 케이스를 줄여 준다.

  1. 그리고 switch문은 equal 비교만 가능하기 때문에 if문의 도움을 받아 조건을 걸어주기도 한다.

ex.

if(score < 0 || score > 100) {
			System.out.println("성적은 0~100만 입력 가능");
			System.exit(0);//프로그램 종료
		}

→ 위와 같이 입력할 경우, 0~100이 아닌 음수 혹은 100 이상 범주 밖의 값을 입력했을 때 예외 처리가 가능하다.

profile
Done is better than perfect.

0개의 댓글