Java 如何修复被零除的异常?

Java 如何修复被零除的异常?,java,exception,divide-by-zero,Java,Exception,Divide By Zero,这是主发电机的一个问题 输入:一行中测试用例的数量(t你看到一个被零除的异常,因为你程序中的一个语句试图将一个值除以零,这在Java或我所知道的任何其他编程语言中是不允许的 您可以做两件事:(1)检查除数的值,如果它为零,则不要进行除数运算;(2)使用try/catch捕捉异常 见识 查看您的代码,我不确定被零除发生在何处,尽管您可能在该区域使用模运算符(%)检查除法的剩余部分是否为零: for(int m=k+1; m<range[i][1]; m++) { int x = pr

这是主发电机的一个问题


输入:一行中测试用例的数量(t你看到一个被零除的异常,因为你程序中的一个语句试图将一个值除以零,这在Java或我所知道的任何其他编程语言中是不允许的

您可以做两件事:(1)检查除数的值,如果它为零,则不要进行除数运算;(2)使用try/catch捕捉异常

见识

查看您的代码,我不确定被零除发生在何处,尽管您可能在该区域使用模运算符(
%
)检查除法的剩余部分是否为零:

for(int m=k+1; m<range[i][1]; m++)
{
    int x = prime[k];
    if(prime[m] % x == 0)  // use modulus operator to check the remainder
    {
        prime[m] = 0;
    }
}

for(int m=k+1;mWelcome to Stack Overflow)。请学习Stack Overflow的工作原理,并阅读如何提高问题的质量。然后,您的问题将包含您的完整源代码,这些源代码可以由其他人编译和测试。还请检查可能重复的注释:“这在Java中是不允许的”——“浮点除法的结果…:将非零的有限值除以零,得到有符号的无穷大"@CarlosHeuberger感谢您对一个特殊情况的澄清。这是
int
,但是您提到的浮点规则对我来说是新的。我对
double
不太了解。什么是有符号的无穷大?
double.POSITIVE_无穷大
double.NEGATIVE_无穷大
,一些表示正数的位模式e无穷大或负无穷大,类似于表示非数字的
Double.NaN
(例如
0.0/0.0
)[也适用于
Float
]
for(int m=k+1; m<range[i][1]; m++)
{
    int x = prime[k];
    if(prime[m] % x == 0)  // use modulus operator to check the remainder
    {
        prime[m] = 0;
    }
}
for(int m=k+1; m<range[i][1]; m++)
{
    int x = prime[k];
    if(x == 0 || prime[m] % x == 0)  // use modulus operator to check the remainder
    {
        prime[m] = 0;
    }
}