我是Java新手,并且尽我所能学习。我正在完成一项考试,考试成绩并将其转换为信件成绩。我为编写代码没有任何问题,实际上,它的运行状况良好。添加回送以及字母输入
import java.util.Scanner;
public class grades {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
byte Score;
Scanner keyboard = new Scanner(System.in);
//Start program
System.out.println("Welcome to the automated grading system!");
{
System.out.println("Please enter your exam score from 0-100. Press 'E' to Exit");
}
Score = input.nextByte();
{
if(Score >= 90 && Score <= 100) {
System.out.println("Your Grade is an A.");
} else if (Score >= 80 && Score <= 89) {
System.out.println("your Grade is a B.");
} else if (Score >= 70 && Score <= 79) {
System.out.println("Your Grade is a C.");
} else if (Score >= 60 && Score <= 69){
{System.out.println("Your Grade is a D.");}
}else if (Score < 50){{
System.out.println("Your Grade is a F.");}
}}
}
}
问题我很难与用户输入的字符'E'而不是数字。除了我所拥有的东西之外,我该如何补充?另外,我试图让程序循环回来,并在我输入数字后重新开始,但第一条消息只是反复重复。
所以我需要知道如何做到这一点。
我知道我必须建立一个布尔值,但我不确定在何处放置while语句。
为什么会有这么多不必要的块? – Li357
而不是使用'input.nextByte()'(它会失败的输入,你不期望像10101例如)使用'.next()'并阅读它作为一个字符串 - 然后检查是否字符串是“E “如果不是,请尝试将其解析为数字,如果它不是数字,或者它是数字但超出范围,则发出错误打印输出。 – alfasin
对不起,安德鲁李,我是新来的所有这一切,我正在尽我所能理解这一切。 –