//获取输入数字,然后计算出它是否为素数? //从键盘输入
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");
}
}
}
//如果数字是素数,则打印,否则 //消息"这个数字不是素数"打印出来。
答案 0 :(得分:0)
@throws InputMismatchException
* if the next token does not match the <i>Integer</i>
* regular expression, or is out of range
此外,您可以将代码重写为:
Scanner scanner = new Scanner(System.in); // there is a System class in java.lang
答案 1 :(得分:0)
问题在于:
Scanner scanner = new Scanner("System.in");
创建Scanner
的方法不止一种。一种方法是传入一个字符串,就像你在这里做的那样。然后扫描仪将尝试扫描字符串。在某些行之后,您向扫描仪询问了整数。扫描程序查看字符串“System.in”并说“我在这里看不到整数”并抛出异常。
创建Scanner
的另一种方法是传入输入流。然后它将尝试从输入流中读取。这是你应该做的事情:
Scanner scanner = new Scanner(System.in);
注意我是如何删除""
的。这意味着System.in
现在引用in
,即表示控制台输入的输入流实例。