我正在尝试制作一个使用以下算法计算 PI 的程序:
PI = 4 x (1 - 1/3 + 1/5 - 1/7 + 1/9 ....) etc.
我不明白操作员的位置是如何影响变量的。
循环第一次迭代产生的结果是有意义的,但随后它似乎重置为初始化值并在第二次通过时忽略赋值运算符。重复这个结果 1,然后是结果 2,然后是结果 1,结果 2,等等......
我尝试查看这本名为“Java:如何编程(早期对象),第 11 版”的书,在第四章中他们讨论了运算符,但我可以看到他们没有涵盖循环中的条件。
double k = 1.0, j = 1.0;
double sum = 0, PI = 0;
while((Math.abs(PI-Math.PI)>0.000001)){
sum += k/j;
j = j + 2;
k=-k;
PI = 4 * sum;
System.out.println(k);
}
我将 while 循环的条件更改为运行 4 次并打印 k。我预计变量“k”的第一次打印为 -1.0。是的,但是 k 的第二次打印(while 循环的第二次循环)是 1.0。第三个是 -1.0,然后第四个是 1.0,依此类推......
我不明白为什么它在所有迭代中都不是 -1.0,因为据我所知,对于 java 赋值运算符,如果左运算符是“=”而右运算符是递增或递减符号,那么结果应该始终是变量 k 将始终 = -k。
Helenr
杨魅力
海绵宝宝撒
相关分类