Шкала оценок в Java

1

У меня есть назначение Java, чтобы сделать шкалу оценки, как показано ниже.

 import java.util.Scanner;
public class gradeSelection {
   public static void main(String[] args){
   Scanner input = new Scanner(System.in);
   System.out.print("Enter Score: ");
   double score = input.nextDouble();
   if (score >= 90) {
        System.out.println("Your score is " + score + " which is an A");
        if ((score < 90) && (score >= 80)){
            System.out.println("Your score is " + score + " which is an B");
            if ((score < 80) && (score >= 70)){
                System.out.println("Your score is " + score + " which is an C");
                if ((score < 70) && (score >= 60)){
                    System.out.println("Your score is " + score + " which is an D");
                    if (score < 60){
                        System.out.println("Your score is " + score + " which is an E");
                    }//endif
                }//endif    
            }//endif
        }//endif
    }//endif
}
}

Я могу заставить его работать в Eclipse, но он завершится после ввода числа. Что я делаю неправильно?

Теги:
variable-assignment

2 ответа

4
Лучший ответ

Вы должны использовать if и else if, потому что, если первое условие не соответствует, оно выйдет и не достигнет вложенных (других) условий:

Попробуйте изменить его так:

if (score >= 90) {
    System.out.println("Your score is " + score + " which is an A");
} else if (score >= 80){
    System.out.println("Your score is " + score + " which is an B");
}//and so on
  • 1
    Кроме того, вам не нужно проверять, меньше ли это 90, потому что вы проверяли это в предыдущем if.
1

Это просто, если вход не больше 90, тогда ничего не печатается. Используйте else if не такой подход.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню