这是我的主要方法
public static void main (String[] args) {
Scanner console = new Scanner(System.in);
Intro();
try {
userInput(console);
} catch (InputMismatchException e) {
System.out.println("Not a number; try again.");
}
}
我想要userInput(控制台);即使发现异常,也要再次运行。方法userInput(console);运行一个程序,询问圆的半径并计算其直径,周长和面积。我尝试在try / catch语句之外使用while循环,但我不知道应该使用什么作为条件。如果您想要查看userInput(控制台)方法,请注释,我也会发布它。
答案 0 :(得分:1)
使用带有条件的while
循环是可以的。请记住,条件用作定义迭代是否继续或停止的标志,特别是因为满足某些条件。在这种情况下,您的条件由用户的输入验证结果定义。假设你使用了这样的时间:
while(someCondition) {
try {
userInput(console);
} catch (InputMismatchException e) {
System.out.println("Not a number; try again.");
}
}
您的someCondition
变量应该是在boolean
中初始化的true
,当输入有效时设置为false
,或者在您的情况下,当没有抛出异常时。如果迭代,您也可以在一定数量后将其设置为false
。如果您将someCondition
设置为false,则下次while评估someCondition
时它为false
,并且迭代结束。
另一种方法是使用while(true)
循环并使用break
语句结束迭代。在这种情况下它实现了相同的效果,但它们本质上是不同的:
someCondition
方法不会削减当前迭代,它会让它完成处理(例如,考虑到循环中必须使用有效输入完成某些操作)。break
语句,该迭代被中断,while
循环结束,而不执行其中包含的其余代码。