https://www.acmicpc.net/problem/9498
// 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int score = in.nextInt();
if (90 <= score <= 100)
System.out.println("A");
else if (80 <= score <= 89)
System.out.println("B");
else if (70 <= score <= 79)
System.out.println("C");
else if (60 <= score <= 69)
System.out.println("D");
else
System.out.println("F");
}
}
이렇게 했을 때 컴파일 에러 발생
바보였다!
1. Scanner 객체를 sc로 선언했는데, in.nextInt()를 사용했음..
2. bad operand types for binary operator '<=' 에러
- 자바에서는 90 <= score <= 100 같은 표현을 사용할 수 없음
- 자바에서는 한 번에 두 개의 비교 연산자를 연결할 수 없음.
- 90 <= score는 true 또는 false를 반환하는 논리값(boolean)인데,
true <= 100을 비교하려고 하니까 에러가 발생
if (90 <= score && score <= 100)
이렇게 논리 연산자를 사용하여 수정하면 오류 해결
// 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if (90 <= score && score <= 100)
System.out.println("A");
else if (80 <= score && score <= 89)
System.out.println("B");
else if (70 <= score && score <= 79)
System.out.println("C");
else if (60 <= score && score <= 69)
System.out.println("D");
else
System.out.println("F");
}
}
정답 코드
'IT > coding test' 카테고리의 다른 글
| [Java] 백준 - 14681 (0) | 2025.01.29 |
|---|---|
| [Java] 백준 - 2753 (0) | 2025.01.28 |
| [Java] 백준 - 1330 (0) | 2025.01.28 |
| [Java] 백준 - 10171 (0) | 2025.01.28 |
| [Java] 백준 - 11382 (0) | 2025.01.26 |