Java 的扫描器问题:InputMismatchException
problem with Java's Scanner: 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)
我了解到问题出在变量的类型上;但他们应该是对的。这个错误是什么意思?我该如何解决?
Scanner scanner = new Scanner ("System.in");
这将创建一个扫描器,读取当前目录中名为 System.in
.
的文件
你可能不是这个意思。要从标准输入中读取,请删除引号:
Scanner scanner = new Scanner (System.in);
只需删除 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();
}
}
替换,
Scanner scanner = new Scanner ("System.in");
和
Scanner scanner = new Scanner (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();
}
}
当我 运行 它时,在我输入第一个数字之前,控制台给我这个错误:
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)
我了解到问题出在变量的类型上;但他们应该是对的。这个错误是什么意思?我该如何解决?
Scanner scanner = new Scanner ("System.in");
这将创建一个扫描器,读取当前目录中名为 System.in
.
你可能不是这个意思。要从标准输入中读取,请删除引号:
Scanner scanner = new Scanner (System.in);
只需删除 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();
}
}
替换,
Scanner scanner = new Scanner ("System.in");
和
Scanner scanner = new Scanner (System.in);