2017-02-17 19 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循環,其中條件是該選項等於您希望用於回送的任何輸入。