【发布时间】:2019-09-24 03:13:57
【问题描述】:
我的程序接受整数输入,然后是更大的整数输入,然后是字符串。
“输入一个数字:”
"请输入一个更大的数字:"
"输入一个字符串:"
如果输入的是字符串而不是整数,我试图使用 try/catch 来捕获情况。我有点让代码工作了,但是在错误消息执行后,它会跳过下一个 int 输入问题并直接进入“输入字符串”。
我假设我需要在某处使用 while 循环,但我无法确定将其放置在何处以及使用什么参数。简单地说,(我认为)我需要:while(输入!=字符串)。我只是不知道该怎么做。
try {
System.out.println("Enter a number: ");
int start = myscanner.nextInt();
System.out.println("Enter a bigger number: ");
int end = myscanner.nextInt();
if (start > end) {
System.out.println("Error: Start should be smaller.");
} else {
int result = sumInt(start, end);
System.out.println("Result: " + result);
}
} catch (InputMismatchException exception) {
System.out.println("Enter a number, not a string.");
}
```````````````````````````````````````````````````````````````````````````
【问题讨论】:
-
你试过使用do-while吗?请参考此链接:docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html
-
我试过do-while。老实说,我被难住了。无论我在哪里放置循环,我都会通过下面的其余代码得到错误。也许我只是完全采取了错误的方法。如果输入了错误的数据类型,我想要的只是捕捉错误。感谢您的帮助。
-
也许你可以使用这样的东西: if (row start!= int) { throw new IllegalArgumentException("请输入整数。"); }
-
我试过:while (throw start != int) 并得到“非法的表达式开始”和“.class 预期”。我似乎无法做到这一点。
-
您不能在条件语句中使用 throw。必须如下所示:while(start != int) { throw new IllegalArgumentException("请输入一个整数"): }
标签: java loops while-loop try-catch