我是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
對不起,安德魯李,我是新來的所有這一切,我正在盡我所能理解這一切。 –