Ответ Джеймса уловил самую очевидную ошибку.Но есть более тонкая (и IMO более поучительная) проблема, заключающаяся в том, что значения с плавающей запятой не должны сравниваться для (не) равенства.
Этот цикл подвержен проблемам, используйте только целочисленное значение и вычислите двойноезначение внутри цикла;или, что менее элегантно, дайте себе некоторый запас: 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