2016-12-03 27 views
-3

幫助!我想創建一個Java程序,它可以在用戶輸入的值中找到最高的偶數整數。當輸入小於1的值時停止詢問值。如果沒有偶數輸入,顯示「無偶數」Java項目作業

下面是示例輸出,我想實現:

輸入值:3

輸入值:8

輸入值:1

輸入值:6

輸入值:3

輸入值:4

輸入值:-5

最高偶數:8

有一個關於它的錯誤:

Exception in thread "main" java.util.NoSuchElementException 
    at java.util.Scanner.throwFor(Scanner.java:862) 
    at java.util.Scanner.next(Scanner.java:1485) 
    at java.util.Scanner.nextInt(Scanner.java:2117) 
    at java.util.Scanner.nextInt(Scanner.java:2076) 
    at Project.main(Project.java:14) 

答:

import java.util.Scanner; 

public class Project { 

    public static void main(String[] args) { 

     Scanner scan = new Scanner(System.in); 
     int max = 0; 

     while (true) { 

      System.out.println("Enter value:"); 

      int m = scan.nextInt(); 

      if (m < 1) 
       break; 

      if ((m % 2 == 0) && (m > max)) 
       max = m; 
     } 

     if (max == 0) 
      System.out.println("No Even Integer"); 

     else 
      System.out.println("Highest even integer=" + max); 
    } 
} 
+0

你能格式化你的代碼嗎?除非你做,否則我和其他人都不會去看它。 –

+2

很可能這不是產生您提及的錯誤的代碼。只需複製,粘貼和運行上面提供的代碼即可獲得預期的輸出結果。 – Polb

回答

0

當你給程序一個空的標準輸入時,我會發現一個潛在的問題,scan.nextInt()無法讀取任何整數。

+0

輸出是說:不偶數 –

0

您的代碼發生錯誤,因爲它可能會陷入無限循環。不要將條件設置爲true,請嘗試在while循環中使用邏輯的實際條件表達式。這裏是它的正確代碼

import java.util.Scanner; 
import java.io.*; 
public class Project { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     int max = 0; 
     System.out.println ("Enter value:"); 
     int m = scan.nextInt(); 
     while(m >= 1) 
     { 
      if ((m%2 == 0) && (m > max)) max = m; 
      System.out.println ("Enter value:"); 
      m = scan.nextInt(); 
     } 

     if (max == 0) System.out.println (max); 

     else System.out.println ("Highest even integer=" + max); 
     } 
} 
+0

輸入值:螺紋 異常「主要」 java.util.NoSuchElementException \t在java.util.Scanner.throwFor(Scanner.java:862) \t在java.util.Scanner中的.next(Scanner.java:1485) \t在java.util.Scanner.nextInt(Scanner.java:2117) \t在java.util.Scanner.nextInt(Scanner.java:2076) \t在Project.main( Project.java:9)相同的錯誤 –

+0

嘗試使用其他編譯器,因爲在線編譯器可能有問題從鍵盤輸入,如Scanner。我已經在NetBeans IDE及其工程中嘗試了此代碼和代碼 –