JAVA.LOOP.CTR.FLOAT

浮動小数点変数をループカウンターとして使用しない

脆弱性とリスク

浮動小数点変数は小数を正確に表さないことがあり、ループカウンターとして使用すると予期しない結果をまねく可能性があります。

軽減と防止

ループ条件をチェックするときに浮動小数点数を使用しないでください (int/long を使用してください)。ループカウンターには整数を使用してください。

脆弱コード例

コピー
package com.klocwork;

public class JAVA_LOOP_CTR_FLOAT_POSITIVE {
    public static void test(String args[]) {
        for (float i = 0; i < 100; i++) {
            System.out.println("hello world");
        }        
    }
}

修正コード例

コピー
package com.klocwork;

public class JAVA_LOOP_CTR_FLOAT_NEGATIVE {
    public static void test(String args[]) {
        for (int i = 0; i < 100; i++) {
            System.out.println("hello world");
        }        
    }
}

外部参考資料