Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么它是一个无限的for循环?_Java_For Loop_Infinite - Fatal编程技术网

Java 为什么它是一个无限的for循环?

Java 为什么它是一个无限的for循环?,java,for-loop,infinite,Java,For Loop,Infinite,我试图通过一个for循环,它和其他for循环一样,但它似乎是无限的;我一定在做傻事。有人能看到吗 double x; for(x = -1; x < 1; x+=2/20) { double y = b * Math.sqrt(1-Math.pow(x-FocusToCenter, 2)); System.out.println("X:"+x+" Y: "+roundFourDecimal(y)); } doublex; 对于(x=-1;x

我试图通过一个for循环,它和其他for循环一样,但它似乎是无限的;我一定在做傻事。有人能看到吗

double x;
for(x = -1; x < 1; x+=2/20) {
    double y = b * Math.sqrt(1-Math.pow(x-FocusToCenter, 2));
    System.out.println("X:"+x+" Y: "+roundFourDecimal(y));
}
doublex;
对于(x=-1;x<1;x+=2/20){
double y=b*Math.sqrt(1-Math.pow(x-FocusToCenter,2));
System.out.println(“X:+X+”Y:+roundFourDecimal(Y));
}

如果将x+=2/20改为x+=0.1,那么就完全可以了。
2/20的计算结果是什么?我怀疑因为它们都是整数,所以得到的是0,因此根本不增加
x


尝试将它们表示为双精度,例如
2.0/20.0

2/20是整数算术运算,因此结果为零。基本上,在循环中没有增加x。为了将其作为浮点除法线程,您需要:

2.0/20


整数除法,
2/20=0

i、 e.
x=x+0

因此,没有修改迭代器,因此没有修改无限循环


要完成您要做的工作,请尝试
2.0/20.0

整数除法。。。
((double)2) / 20;