2017-02-17 69 views
0

我是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语句。

+3

为什么会有这么多不必要的块? – Li357

+0

而不是使用'input.nextByte()'(它会失败的输入,你不期望像10101例如)使用'.next()'并阅读它作为一个字符串 - 然后检查是否字符串是“E “如果不是,请尝试将其解析为数字,如果它不是数字,或者它是数字但超出范围,则发出错误打印输出。 – alfasin

+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 

} 
+0

我实际上更喜欢定期while循环,如果input.equals(“E”)'或每次迭代都不检查两次,或者在do中修改条件while while(true)' – alfasin

+0

有时它按照我的方式做到这一点是有道理的,但是你做出了一个好的点 –

+0

感谢您的输入,我能够使其工作,并且输入'E'或'e'时程序终止。试图找出是否有一个声明,我可以在输入“e”之后但终止之前输入代码。再次感谢! –

0

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