线程“main”java.util.InputMismatchException中出现异常
//获取输入数字,然后计算它是否为素数? //从键盘获取输入线程“main”java.util.InputMismatchException中出现异常,java,Java,//获取输入数字,然后计算它是否为素数? //从键盘获取输入 package basicjava; import java.util.*; public class Primes { public static void main(String[] args) { Scanner scanner = new Scanner("System.in"); System.out.println("Enter a Positive Integer Ple
package basicjava;
import java.util.*;
public class Primes {
public static void main(String[] args) {
Scanner scanner = new Scanner("System.in");
System.out.println("Enter a Positive Integer Please ");
int userInput = scanner.nextInt();
int potentialFactor = 2;
while (userInput % potentialFactor != 0 ) {
potentialFactor++;
}
if (potentialFactor == userInput) {
System.out.println("the number is prime");
}
else {
System.out.println("the number is not prime");
}
}
}
//如果数字为素数,则打印该数字,否则为素数
//将打印数字不是素数的消息。
问题在于:
Scanner scanner = new Scanner("System.in");
创建扫描仪的方法不止一种。一种方法是像你在这里做的那样,通过一个字符串。然后扫描器将尝试扫描字符串。几行之后,您向扫描仪询问整数。扫描器查看字符串System.in,说我在这里没有看到整数,并抛出一个异常
创建扫描仪的另一种方法是传入输入流。然后,它将尝试从输入流中读取数据。这就是你应该做的:
注意我是如何删除的。这意味着System.in现在指in,表示控制台输入的输入流实例
Scanner scanner = new Scanner(System.in); // there is a System class in java.lang
Scanner scanner = new Scanner("System.in");
Scanner scanner = new Scanner(System.in);