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);
}
}
}
}