Java 添加环回和字母输入

Java 添加环回和字母输入,java,Java,我是Java新手,正在尽我最大的努力学习。我正在做一项作业,它会把考试成绩转换成字母分数。我在为它编写代码方面没有问题,事实上,它工作得很好 import java.util.Scanner; public class grades { public static void main(String[] args) { Scanner input = new Scanner(System.in); byte Score; Sca

我是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语句放在哪里

我遇到的问题是用户输入的字符“E”而不是数字

您可以读取字符串而不是字节。在实际需要时将字符串转换为整数

此外,我正在尝试使程序返回,并在输入一个数字后重新开始

尝试一段时间,并在需要时中断

我知道我必须建立一个布尔值,但不确定while语句放在哪里

围绕着你想重复的一切

比如说

Scanner sc = new Scanner(System.in);
String input = "";
while (true) {
    System.out.println("Please enter your exam score from 0-100. Press 'E' to Exit");
    input = sc.next();
    if (input.equals("E")) break; // exit loop

    int score = Integer.parseInt(input);
    // check score

}

.next将读取输入的下一个字符,如果要在char和int之间切换,可以从中转换为所需的类型。如果希望程序进行循环,可以在循环外部初始化choice变量,然后执行do-while循环,条件是选项等于您想要用于循环的任何输入。

为什么有这么多不必要的块?而不是使用input.nextByte,它会在您不期望的输入上失败,例如10101。使用。接下来,将其作为字符串读取-然后检查字符串是否为E,如果不是,尝试将其解析为一个数字,如果它不是一个数字,或者如果它是一个数字但超出范围,则发出错误打印输出。对不起,Andrew Li,我对这一切都是新手,我正在尽我最大的努力去理解它。实际上,我更喜欢一个常规的while循环,如果input.equals,每次迭代不检查两次,或者在do while to be中修改条件,而事实上,有时候按照我的方式来做是有意义的,但是你说得很好谢谢你的输入,我能够让它工作,程序在输入“E”或“E”时终止。只是想弄清楚,在输入“e”之后,但在终止之前,我是否可以在代码上添加语句。再次感谢!是的,您可以在中断时为if语句创建一个block语句,然后做任何您想做的事情。弄明白了,非常感谢您的帮助。这几天来,我在这件事上真是跌跌撞撞。我真是个新手。