2013-10-18 64 views
1

我想寫一個程序,它要求用戶輸入整數,並不斷輸入,直到用戶輸入一個Q.每次輸入後,程序應該用字符串提示:「輸入一個整數,或Q退出:」。爪哇,第二個打印輸出是不同的,基於一個循環

在我的終端上,每一秒out.print只會提示用戶輸入,而不是要求輸入的字符串。例如,輸出應該是這樣的:

輸入的整數,或者Q退出:90
輸入的整數,或者Q退出:100
輸入的整數,或者Q退出:25
輸入一個整數,或者Q退出:7
輸入一個整數,或者Q退出:Q

我的代碼如下......

Scanner in = new Scanner(System.in); 

    System.out.print("Enter an integer, or Q to quit: "); 

    int largest = in.nextInt(); 

    if (in.hasNextInt()) 
    { 

     while (in.hasNextInt()) 
      { 


       int input = in.nextInt(); 
       if(input > largest) 
       { 
        largest = input; 
       } 

       System.out.print("Enter an integer, or Q to quit: "); 

      } 
    } 


    System.out.println(largest); 

我的第一個猜測是某些陳述的排序,但我沒有運氣。有什麼建議麼?

回答

1

的問題是,你正在等待兩個數字...將其更改爲如下:

 Scanner in = new Scanner(System.in); 

     System.out.print("Enter an integer, or Q to quit: "); 
     int largest = Integer.MIN_VALUE; 

     while (in.hasNextInt()) 
     {   
      int input = in.nextInt(); 
      if (input > largest) 
      { 
       largest = input; 
      } 

      System.out.print("Enter an integer, or Q to quit: "); 

     } 

     System.out.println(largest); 

的問題與以前的版本的代碼是,你預計2號開始,一他們是最大的值。

+0

我看到我的錯誤。謝謝+1 – slumberingbear