for循环,递增加倍
我想为我的问题使用for循环,而不是。 有可能做到以下几点吗?:
for(double i = 0; i < 10.0; i+0.25)
我想添加双值。
为了防止被浮点运算的工件咬住,您可能希望使用整数循环变量并导出循环中所需的浮点值:
for (int n = 0; n <= 40; n++) { double i = 0.25 * n; // ... }
您可以使用i += 0.25
代替。
詹姆斯的回答发现了最明显的错误。 但是有一个更微妙的(和IMO更具指导性)的问题,因为浮点值不应该与(un)相等进行比较。
该循环容易出现问题,只使用整数值并计算循环内的double值; 或者,不那么优雅,给自己一些余量: for(double i = 0; i < 9.99; i+=0.25)
编辑:原始比较恰好工作正常,因为0.25 = 1/4是2的幂。在任何其他情况下,它可能不能完全表示为浮点数。 (潜在)问题的一个例子:
for(double i = 0; i < 1.0; i += 0.1) System.out.println(i);
打印11个值:
0.0 0.1 0.2 0.30000000000000004 0.4 0.5 0.6 0.7 0.7999999999999999 0.8999999999999999 0.9999999999999999
for(double i = 0; i < 10.0; i+=0.25) { //... }
added =表示i = i + 0.25的快捷方式;
在
for (double i = 0f; i < 10.0f; i +=0.25f) { System.out.println(i);
f表示float
added =
表示i = i + 0.25的快捷方式;
对于整数。 我们可以使用: for (int i = 0; i < a.length; i += 2)
for (int i = 0; i < a.length; i += 2) { if (a[i] == a[i + 1]) { continue; } num = a[i]; }
我们也可以为其他数据类型做同样的事情。