2016-12-03 2 views
-3

Помощь! Я хочу создать java-программу, которая найдет наивысшее четное целое среди значений, введенных пользователем. Остановите запрашиваемые значения, когда введено значение менее 1. Если нет даже целое число не вводится, дисплей "Нет Даже Integer"Назначение Java Project

Вот пример вывода, что я хочу добиться:

Введите значение: 3

Введите значение: 8

Enter Value : 1

Введите значение: 6

Введите значение: 3

Введите значение: 4

Введите значение: -5

Самый четное число: 8

Там есть ошибки об этом:

Exception in thread "main" java.util.NoSuchElementException 
    at java.util.Scanner.throwFor(Scanner.java:862) 
    at java.util.Scanner.next(Scanner.java:1485) 
    at java.util.Scanner.nextInt(Scanner.java:2117) 
    at java.util.Scanner.nextInt(Scanner.java:2076) 
    at Project.main(Project.java:14) 

Ответ:

import java.util.Scanner; 

public class Project { 

    public static void main(String[] args) { 

     Scanner scan = new Scanner(System.in); 
     int max = 0; 

     while (true) { 

      System.out.println("Enter value:"); 

      int m = scan.nextInt(); 

      if (m < 1) 
       break; 

      if ((m % 2 == 0) && (m > max)) 
       max = m; 
     } 

     if (max == 0) 
      System.out.println("No Even Integer"); 

     else 
      System.out.println("Highest even integer=" + max); 
    } 
} 
+0

Можете ли вы отформатировать код, пожалуйста? Ни я, ни кто-либо еще не посмотрят на это, пока вы это сделаете. –

+2

Скорее всего, это не тот код, который вызвал упомянутые вами ошибки. Простое копирование, вставка и запуск приведенного выше кода дает ожидаемый результат. – Polb

ответ

0

Я вижу потенциальную проблему, когда вы даете пустой стандартный ввод в программу , scan.nextInt() не может прочитать целое число.

+0

выход говорят: Нет, даже целое –

0

Ваш код дает ошибку, потому что он может застревать в бесконечном цикле. Вместо того, чтобы устанавливать условие true, попробуйте использовать выражение выражения фактического условия логики во время цикла. Вот правильный код для этого

import java.util.Scanner; 
import java.io.*; 
public class Project { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     int max = 0; 
     System.out.println ("Enter value:"); 
     int m = scan.nextInt(); 
     while(m >= 1) 
     { 
      if ((m%2 == 0) && (m > max)) max = m; 
      System.out.println ("Enter value:"); 
      m = scan.nextInt(); 
     } 

     if (max == 0) System.out.println (max); 

     else System.out.println ("Highest even integer=" + max); 
     } 
} 
+0

Введите значение: Исключение в потоке «главный» java.util.NoSuchElementException \t в java.util.Scanner.throwFor (Scanner.java:862) \t в java.util.Scanner .next (Scanner.java:1485) \t на java.util.Scanner.nextInt (Scanner.java:2117) \t на java.util.Scanner.nextInt (Scanner.java:2076) \t в Project.main (Project.java:9) Same Error –

+0

Попробуйте использовать какой-либо другой компилятор, потому что у онлайн-компилятора могут возникнуть проблемы с вводами с клавиатуры, например Scanner. Я пробовал этот код и ваш код, а также в среде IDE NetBeans и его работах –