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

我们也可以为其他数据类型做同样的事情。