-1

让我们假设 x 是除数,它可能是 0。

程序运行这个:

Scanner reader = new Scanner(System.in);

int y = 5;
int x = 0;

x = reader.nextInt();

System.out.println("y divided by x is " + y/x);

我知道如果一个程序发现它正在将一个变量除以 0,它会抛出一个 ArithmeticException。

虽然这很好,但还有其他方法可以查找,例如在执行任何除法或执行 try/catch 块之前使用 if 语句检查 x 是否为 0。

确保程序不会将变量除以 0 的最有效方法是什么?

4

2 回答 2

1

使用断言语句:

assert x != 0; 

但它们应该在生产代码中使用。
注意:您需要运行带有-ea参数的代码才能在运行时激活它。默认情况下它们被忽略。

您当然可以用if-else块替换它,这肯定不会对您的代码效率产生太大影响。事实上,你不应该在如此微小的水平上为代码效率而烦恼。

于 2013-07-16T20:04:21.930 回答
0

System.out.println("y 除以 x 为 " + (x == 0 ? "infinity" : y/x));

编辑:我不知道这是否是最有效的方法,但老实说,这么简单的事情的效率是完全不合理的。

于 2013-07-16T20:06:58.213 回答