проблема со сканером Java: InputMismatchException

У меня есть этот код:

import java.util.Scanner;

public class Maggiore3Valori {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("System.in");

        int num1, num2, num3;
        int max;

        System.out.println("Inserisci il primo numero: ");
        num1 = scanner.nextInt();

        System.out.println("Inserisci il secondo numero: ");
        num2 = scanner.nextInt();

        System.out.println("Inserisci il terzo numero: ");
        num3 = scanner.nextInt();

        if (num1 > num2 && num1 > num3) {
            max = num1;
        } else if (num2 > num1 && num2 > num3) {
            max = num2;
        } else {
            max = num3;
        }

        System.out.println("Il maggiora trai tre è: " + max);
        scanner.close();
    }
}

Когда я запускаю его, прежде чем я могу ввести первое число, консоль выдает мне эту ошибку:

Inserisci il primo numero:
Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Scanner.java:939)
    at java.base/java.util.Scanner.next(Scanner.java:1594)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
    at Maggiore3Valori.main(Maggiore3Valori.java:13)

Я читал, что проблема связана с типом переменных; но они должны быть правы. Что означает эта ошибка? Как я могу это решить?


person Vitangelo Moscarda    schedule 28.01.2020    source источник
comment
Вы имеете в виду "System.in" (файл с таким именем) или действительно имеете в виду System.in (стандартный поток ввода)?   -  person Andy Turner    schedule 28.01.2020
comment
ДА, извините, вот проблема, мой плохой X(   -  person Vitangelo Moscarda    schedule 28.01.2020


Ответы (3)


Scanner scanner = new Scanner ("System.in");

Это создает сканер, который читает файл в текущем каталоге с именем System.in.

Это, вероятно, не то, что вы имеете в виду. Чтобы прочитать стандартный ввод, удалите кавычки:

Scanner scanner = new Scanner (System.in);
person Andy Turner    schedule 28.01.2020

Заменять,

Scanner scanner = new Scanner ("System.in");

с

Scanner scanner = new Scanner (System.in);
person KAMLESH KUMAR    schedule 28.01.2020

Просто удалите двойную кавычку из System.in, и все готово.

import java.util.Scanner;
public class Maggiore3Valori {

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

         int num1, num2, num3;
         int max;

         System.out.println ("Inserisci il primo numero: ");
         num1 = scanner.nextInt();

         System.out.println ("Inserisci il secondo numero: ");
         num2 = scanner.nextInt();

         System.out.println ("Inserisci il terzo numero: ");
         num3 = scanner.nextInt();

         if (num1 > num2 && num1 > num3) {
             max = num1;
         }
         else if (num2 > num1 && num2 > num3) {
             max = num2;
         }
         else {
             max = num3;
         }

         System.out.println ("Il maggiora trai tre è: " + max);

        scanner.close();

    }

}
person Dipankar Baghel    schedule 28.01.2020