[Java][BOJ] 시험 성적

Ga02·2023년 9월 2일
0

BOJ

목록 보기
33/62

문제

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력

시험 성적을 출력한다.

예제입력1

100

예제출력1

A

My Solution

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		int A = Integer.parseInt(bf.readLine());
		if(A>=90) {
			System.out.println("A");
		} else if(A>=80) {
			System.out.println("B");
		} else if(A>=70) {
			System.out.println("C");
		} else if(A>=60) {
			System.out.println("D");
		} else {
			System.out.println("F");
		}
	}

}

👀 Comment

정답은 맞지만 문제에 주어진 조건과 완전 일치하게 하려면 0과 100 외의 경우도 차단해주는 것이 좋을 것!

구간이 딱딱 나뉘어져 있는 부분이라서 switch문으로는 해결할 수 없나? 하는 생각이 들었다. 하지만 이것도 역시 안한지 오래되어서 까먹어 버린 것.. switch문은 범위를 조건으로 줄 수 없다.
예를들어 메뉴같은걸 구현할 때 case1 : / case2 : 이런 식으로 정확한 값을 가진 경우에 사용할 수 있다

하지만 좀 더 심플하게 풀 수 있는 방법이 있을 것 같아서 구글링 해서 다른 사람들의 코드를 찾아봤는데 이마를 탁! 쳤다.. 삼항연산자를 사용하여 더욱 간단하게 코드를 작성할 수 있었던 것..
진짜 생각도 못한 방법이라 충격적이었다

💡 삼항연산자를 사용한 방법

왠지는 모르지만 이번에는 Scanner import문이 자동으로 추가되었다..?ctrl + space로 자동완성되는 코드를 쳐서 그런걸까..!

//조건을 정확하게 지키려면 0보다 작을 경우나 100보다 클 경우에 출력이 안되도록 설정
//switch문은 범위조건을 걸 수 없어서 안됨
//와 삼항연산자는 생각도 못했음

profile
IT꿈나무 댓츠미

0개의 댓글