2016-03-10 22 views
0

我想添加到這個程序中的最後一部分是這樣的,它會在打印結果後重復,直到按下EOF。這裏是我的代碼如何重複這個小程序直到EOF

public static void main(String args[]) 
{ 
    Scanner stdin = new Scanner(System.in); 

    System.out.println("Please enter a positive integer > 2. Press EOF to quit: "); 
    int num = stdin.nextInt();  
    while(stdin.hasNextInt) 
    { 
     if(num < 3) 
     { 
      System.out.println("Your input " + num + " is not a positive integer > 2"); 
     } 
     else 
     { 
      int prime = 0;int pnum = 0;int dnum = 0;int anum = 0; 
      for(int i = 2;i <= num;i++) 
      { 
       if(NumberClassifier.isPrime(i)==true) 
       { 
        prime++; 
       } 
       if(NumberClassifier.classify(i)==1) 
       { 
        pnum++; 
       } 
       else if(NumberClassifier.classify(i)==2) 
       { 
        dnum++; 
       } 
       else if(NumberClassifier.classify(i)==3) 
       { 
        anum++; 
       } 
      } 
      System.out.println("In the range of 2 - " + num + " there are:"); 
      System.out.println(prime + " prime numbers"); 
      System.out.println(pnum + " perfect numbers"); 
      System.out.println(anum + " abundant numbers"); 
      System.out.println(dnum + " deficient numbers"); 
      System.out.println("Please enter a positive integer > 2. Press EOF to quit: "); 
     } 
    } 
    //System.out.println("Please enter a positive integer > 2. Press EOF to quit: "); (dont know where this should be) 

} 

這個程序需要一個整數和運行範圍爲2 - 2種,通過該方法計算的黃金,物產豐富,缺乏完善的數字範圍內的整數。我只想要打印輸入,然後再次打印指示並運行,直到按下EOF。我試圖使用while循環來繼續程序,而掃描儀有一個整數,但似乎並沒有工作。 任何幫助將不勝感激。

+0

「我試着用while循環只能繼續該計劃,而掃描儀具有一個整數但沒有似乎在所有的工作。」請告訴我們代碼。 – MikeCAT

+0

增加了它,但現在它會混淆人,因爲我不認爲它接近於工作 – EScann15

回答

0
  • java.util.Scanner.hasNextInt是一個方法,所以你必須稱之爲才能使用它。
  • 您必須閱讀循環內部的值

變化

int num = stdin.nextInt();  
while(stdin.hasNextInt) 
{ 

while(stdin.hasNextInt()) 
{ 
    int num = stdin.nextInt(); 
+0

太棒了!謝謝 – EScann15

相關問題