2015-09-25 3 views
-2

Требования:Пользователь должен ввести целое число от класса сканера получать вход и проверить, если условие

  1. Получить номер входа от пользователя.
  2. Подтвердите, является ли данный ввод числом или нет.
  3. Если это номер, то проверьте ряд Фибоначчи и отобразите сообщение для него.
  4. Если ввод не является номером, тогда отобразите «введите номер» и снова запросите ввод.
  5. Пользователь должен указать 'Q' для выхода
  6. Если введен вход. Выполните вышеуказанный процесс и попросите следующий ввод, пока не нажмете «Q».

Я сделал логику, но не в состоянии проверить, если условие

public static void main(String args[]) throws Exception { 
    boolean quit = false; 
    BufferedReader re = new BufferedReader(new InputStreamReader(System.in)); 
    Scanner sc = new Scanner(System.in); 
    System.out.println("Enter a number :"); 
    int n; 
    while (!quit) { 
     if (sc.hasNextInt()) { 
      n = sc.nextInt(); 
      while (n <= 0) { 
       System.out.println("*****Fibonacci Series*****"); 
       int f1, f2 = 0, f3 = 1; 
       for (int i = 1; i <= n; i++) { 

        f1 = f2; 
        f2 = f3; 
        f3 = f1 + f2; 
        System.out.print(" " + f3 + " "); 
       } 
      } 
      quit = false; 
     } else if (!sc.hasNextInt()) { 
      System.out.println("That's not a number!"); 
      sc.next(); 
      quit = false; 

     } else(sc.hasNextInt().equals("q")) { 
      quit = true; 
     } 
    } 
} 

в состоянии, если он выдает ошибку имеет .class ожидается

+0

'if (sc.nextInt(). Equals (int))': что именно вы хотите достичь с помощью этой неправильной инструкции? Прочитали ли вы javadoc 'Scanner.nextInt()', чтобы понять, что он делает, и что произойдет, если следующий токен не является int? –

+0

Извините, я выложу свой полный код здесь –

ответ

0

Условный условие вы ищете if (sc.hasNextInt())

После этого вы можете позвонить по телефону sc.nextInt();

Все проверка может выглядеть следующим образом:

 if (sc.hasNextInt()) { 
      int num = sc.nextInt(); 
      //do something with num 
     } 
     else if (sc.hasNext() && ("q".equals(sc.next()))) { 
       //do something 
     } 

Для получения подробной информации о Scanner пожалуйста, прочитайте JavaDoc.

+0

Спасибо, и если мне нужно проверить, является ли это строкой или нет в другом условии, я должен использовать (! Sc.hasNextInt()) также в if else (sc.hasNextInt(). Equals ("q")) –

+0

** sc.hasNextInt(). equals ("q")) ** является правильным в другом цикле –

+0

Вы должны прочитать Javadoc java.lang.Scanner. 'hasNextInt' возвращает логическое значение, на которое вы не можете вызвать' equals' (или любой другой метод). –

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