시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
시험 성적을 출력한다.
100
A
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");
}
}
}
정답은 맞지만 문제에 주어진 조건과 완전 일치하게 하려면 0과 100 외의 경우도 차단해주는 것이 좋을 것!
구간이 딱딱 나뉘어져 있는 부분이라서 switch문으로는 해결할 수 없나? 하는 생각이 들었다. 하지만 이것도 역시 안한지 오래되어서 까먹어 버린 것.. switch문은 범위를 조건으로 줄 수 없다.
예를들어 메뉴같은걸 구현할 때 case1 : / case2 : 이런 식으로 정확한 값을 가진 경우에 사용할 수 있다
하지만 좀 더 심플하게 풀 수 있는 방법이 있을 것 같아서 구글링 해서 다른 사람들의 코드를 찾아봤는데 이마를 탁! 쳤다.. 삼항연산자를 사용하여 더욱 간단하게 코드를 작성할 수 있었던 것..
진짜 생각도 못한 방법이라 충격적이었다
💡 삼항연산자를 사용한 방법
왠지는 모르지만 이번에는 Scanner import문이 자동으로 추가되었다..?ctrl + space로 자동완성되는 코드를 쳐서 그런걸까..!
//조건을 정확하게 지키려면 0보다 작을 경우나 100보다 클 경우에 출력이 안되도록 설정
//switch문은 범위조건을 걸 수 없어서 안됨
//와 삼항연산자는 생각도 못했음