我想说当有人试图在此代码中输入字符串时输入一个整数。
你能帮助我吗?
这是我的代码:
import java.util.Scanner;
public class kl {
public static void main(String[] args) {
boolean primen = true;
Scanner input = new Scanner(System.in);
System.out.print("Please enter a positive integer that is prime or not : ");
int ncheck = input.nextInt();
if (ncheck < 2) {
primen = false;
}
for (int i = 2; i < ncheck; i++) {
if (ncheck % i == 0) {
primen = false;
break;
}
}
if (primen == true) {
System.out.println(ncheck + " is a prime number.");
}
else {
System.out.println(ncheck + " is not a prime number.");
}
}
}
答案 0 :(得分:0)
您可以在此处找到您的解决方案:Exception handling,或使用以下代码
这是您的完整代码:
while(true){
System.out.print("Please enter a positive integer that is prime or not : ");
try{
int i = input.nextInt();
break;
}catch(InputMismatchException e){
System.out.print("Wrong type input, pls try again!");
input.nextLine(); \\ prevent infinite loop
}
您可以看到:我使用Exception句柄处理器捕获InputMismatchException
并在控制台上打印消息。您可以使用Exception替换InputMismatchException
。它是java中最大的Exception
Handler类
答案 1 :(得分:0)
Scanner
可以使用两种方法。
调用nextInt()
,然后捕获并处理下一个输入标记不是整数时将获得的InputMismatchException
。
致电hasNextInt()
。如果返回true
,则调用nextInt()
。
在任何一种情况下,如果您期望一个整数并且用户输入了其他内容,则nextInt()
或hasNextInt()
将&#34;消费&#34;意想不到的人物。因此,如果您希望用户再次尝试,则需要调用nextLine()
,这将读取该行上的所有剩余字符。你通常会丢弃它们。
有关处理例外的更多信息:
有关使用Scanner
的更多信息: