2016-03-10 2 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

«Я попытался с помощью время цикла только продолжить программу в то время как сканер имеет целое, но это не показалось, что работает.» Пожалуйста, покажите нам код. – MikeCAT

+0

добавил, но теперь его соберут людей, поскольку я не верю, что это близко к работе вообще – EScann15

ответ

0
  • java.util.Scanner.hasNextInt является метод, поэтому вы должны назвать это для того, чтобы использовать его.
  • Вы должны прочитать значение внутри цикла.

Изменить

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

в

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

Удивительный! спасибо – EScann15

Смежные вопросы