for循环,增加double

时间:2010-10-19 18:27:07

标签: java for-loop double

我想为我的问题使用for循环,而不是。是否可以执行以下操作?:

for(double i = 0; i < 10.0; i+0.25)

我想添加双倍值。

6 个答案:

答案 0 :(得分:52)

为防止被浮点运算的伪像所困,您可能希望使用整数循环变量并在循环中导出所需的浮点值:

for (int n = 0; n <= 40; n++) {
    double i = 0.25 * n;
    // ...
}

答案 1 :(得分:27)

您可以改为使用i += 0.25

答案 2 :(得分:9)

詹姆斯的回答发现了最明显的错误。但是有一个更微妙的(和IMO更具指导性)的问题,因为浮点值不应该与(非)相等进行比较。

该循环容易出现问题,仅使用整数值并计算循环内的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

答案 3 :(得分:2)

for(double i = 0; i < 10.0; i+=0.25) {
//...
}

added =表示i = i + 0.25;

的快捷方式

答案 4 :(得分:2)

for (double i = 0f; i < 10.0f; i +=0.25f) {
 System.out.println(i);

f表示float

添加的=表示i = i + 0.25;

的快捷方式

答案 5 :(得分:0)

对于整数。 我们可以使用: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];
        }

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