eclipse中的Java错误

eclipse中的Java错误,java,eclipse,Java,Eclipse,每当我运行此代码时: package jmv; public class euler3 { int x=0; public static void main(String[] args) { for (int x=0 ; x < 6008 ; x++){ if(6008 % x == 0){ System.out.println(x); } } } }

每当我运行此代码时:

package jmv;

public class euler3 {
    int x=0;
    public static void main(String[] args) {
        for (int x=0 ; x < 6008 ; x++){
            if(6008 % x == 0){
                System.out.println(x);
            }
        }

    }
}

这意味着什么?我如何修复它

您的代码从0开始
x
。这意味着您的代码将尝试运行
6008%0
,这将导致除零错误


int x=0
更改为
int x=1
,以修复该错误。

错误正是它所表示的-不能被零除。在你的例子中,如果(6008%x==0)你取的是6008和0的模,这是未定义的。尝试
x=1
而不是设置
x=0

int x=0
然后计算模数,也就是除以x的余数

6008 % x

所以实际上你是在除以零,这是不可能的。试着从x=1开始

这是由于被零除,因为模运算符(%)本质上是一个除法

改为从
x=1开始

  public static void main(String[] args) {
        for (int x=1 ; x < 6008 ; x++){
            if(6008 % x == 0){
                System.out.println(x);
            }
        }

    }
publicstaticvoidmain(字符串[]args){
对于(int x=1;x<6008;x++){
如果(6008%x==0){
系统输出println(x);
}
}
}

从1开始x,这样可以避免导致错误的循环的第一次迭代

注意:如果为零,则必须在循环开始前手动添加/打印

public class euler3 {
     public static void main(String[] args) {
        for (int x=1 ; x < 6008 ; x++){
            if(6008 % x == 0){
                System.out.println(x);
            }
        }
     }
}
公共类euler3{
公共静态void main(字符串[]args){
对于(int x=1;x<6008;x++){
如果(6008%x==0){
系统输出println(x);
}
}
}
}

for(int x=1;x<6008;x++){以x=1开始循环。Java不允许你除以0,因为0是未定义的。你得到错误是因为你将一个数字除以0,结果是未定义的。试着向我们这些在Java和相关语言中工作了一段时间的人开始循环,以int x=1,错误信息是完全明显的。我甚至没有看到任何错误第一次阅读时,ticed提到它使用了符号/而不是单词divide。对于那些反对投票的人,试着回想一下这一切对你来说是什么时候。一小段文字解释说,改变循环,使其从1开始,可以避免被零除,这将是一个更好的答案。
public class euler3 {
     public static void main(String[] args) {
        for (int x=1 ; x < 6008 ; x++){
            if(6008 % x == 0){
                System.out.println(x);
            }
        }
     }
}