【发布时间】:2014-03-06 20:39:45
【问题描述】:
我希望程序在捕获异常时重新执行 while 循环 - 异常接收数字零。相反,它使用下面的代码继续一个while循环,我希望它再次要求用户输入,直到用户输入一个与零不同的数字。
import java.util.InputMismatchException;
import java.util.Scanner;
public class whilePerjashtim {
public static int division(int a, int b){
return a/b;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a, b;
System.out.println("Enter a value: ");
a = s.nextInt();
while(true){
try
{
System.out.println("Enter b value");
b = s.nextInt();
System.out.println("Sum of division is: " + division(a,b));
}
catch(ArithmeticException e)
{
System.err.println("Don't divide by zero!!!");
}
catch (java.util.InputMismatchException e)
{
System.err.println("Enter just a Number!!!");
}
finally
{
System.out.println();
}
}
}
}
【问题讨论】:
-
如何打破循环?你如何继续循环?
-
你试过用 continue 吗!!
-
首先,你只服用一次,如果这是你想要的没关系,但除非例外,否则没有中断条件。
-
而且我认为它会抛出 NumberFormatException,而不是 InputMismatchException,因为您将字符串转换为导致 NumberFormatException 的 int
标签: java while-loop try-catch