2012-11-21 32 views
0
import java.util.Scanner; 
public class InputLoop 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Enter an integer to continue or a non-integer to finish"); 
     Scanner scan = new Scanner(System.in); 
     int input = scan.nextInt(); 
     while(scan.hasNextInt()) 
     { 
      System.out.println("Enter an integer to continue or a non-integer to finish"); 
      scan.next(); 
     } 


    } 
} 

這是我寫的第一個while循環,當它運行時,我必須輸入一個數字兩次,然後繼續打印「輸入一個整數繼續.....」 感謝您的任何幫助!無法讓循環工作,輸入兩次?

回答

1

這會比do ... while循環好得多。本質上,它是相同的,除非您在完成後檢查條件。

do 
    { 
     System.out.println("Enter an integer to continue or a non-integer to finish"); 
     scan.next(); 
    } while(scan.hasNextInt()); 

雖然如果你做了一段時間,你可以添加一個虛擬變量,以確保至少經歷一次。

Boolean firstTime=true; 
while(firstTime==true || scan.hasNextInt()) 
    { 
     firstTime=true; 
     System.out.println("Enter an integer to continue or a non-integer to finish"); 
     scan.next(); 
    }; 
2

根據文檔 - Scanner#hasNextInt

,則返回true,如果在此掃描器輸入的下一個標記可以解釋爲在使用nextInt()方法默認基數的 int值。掃描儀不會通過任何輸入前進 。