IT/coding test

[Java] 백준 - 9498

돔녕 2025. 1. 28. 23:15

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