添加环回以及字母输入

时间:2017-02-17 20:15:56

标签: java

我是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.");}
        }}
    }
}

我遇到困难的问题是用户输入的角色&#39; E&#39;而不是数字。除了我的内容之外,我该如何添加?此外,我试图让程序循环回来并在我输入数字后重新开始,但第一条消息只是一遍又一遍地重复。
所以我需要知道如何实现这一点 我知道我必须建立一个布尔值,但我不确定在何处放置while语句。

2 个答案:

答案 0 :(得分:1)

  

我遇到困难的问题是用户输入的字符'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

}

答案 1 :(得分:0)

.next()将读取输入的下一个字符,如果要在char和int之间切换,可以从那里转换为所需的类型。如果你想要程序回送你可以在循环之外初始化“选择”变量,并做一个do while循环,其中条件是该选项等于你想要用于环回的任何输入。