У меня есть назначение 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, но он завершится после ввода числа. Что я делаю неправильно?
Вы должны использовать 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
Это просто, если вход не больше 90, тогда ничего не печатается. Используйте else if
не такой подход.