【发布时间】:2015-08-16 21:38:02
【问题描述】:
如果用户在扫描仪中输入“STOP”,我只想跳出while true 循环。目前我的扫描仪只接受整数,我相信这就是问题所在。如果我尝试输入“STOP”,我会收到很多错误,说“线程主线程中的异常”。这是我的代码的 sn-p:
public class algorithm {
private Scanner input = new Scanner(System.in);
int n;
while (true){
System.out.println("Eneter a number to check if it is odd or even, then hit enter: ");
System.out.println("Type 'STOP' to end the program");
n = input.nextInt();
String strN = String.valueOf(n); //convert integer to string
if (new String(strN).equals("STOP")){ //if string is STOP, breaks
System.out.println("Thanks for using my program");
break;
}
if (n % 2 == 0){
System.out.println(n+" is even");
continue;
}
else{
System.out.println(n+" is odd");
continue;
我知道我缺少一些右花括号,但请放心,它们都在我的实际代码中。谢谢。
这是我得到的错误:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at OddOrEven.algorithm.checker(algorithm.java:13)
at OddOrEven.main.main(main.java:7)
【问题讨论】:
-
.nextInt()?您需要提示输入字符串,而不是 int。 -
我认为
nextInt()不会检查用户是否输入“停止”。 -
是的,我已经试过了。但是我不必将字符串转换为整数来检查它们是奇数还是偶数?
-
异常类型是什么?
-
提示输入字符串,然后检查该字符串是否为“STOP”,否则尝试将其转换为 int。