Чтобы пояснить комментарий Амадана, цикл for состоит из трех частей: 1. Инициализация с объявлением переменной 2. Условие 3. Итерация или изменение состояния в конце цикла
Этивещи происходят и в цикле while, но размещаются по-разному
for (int i = 0; i < 12; i++) { //(initialization;condition;iteration)
doStuff();
}
Это инициализирует i в 0, увеличивает его каждый раз, когда код в блоке завершается, и выходит из цикла, если i превышает 12.
int i = 0; // initialization
while (i < 12) { //condition
doStuff();
i++; //iteration
}
Ошибка в условной части цикла for, где вы проверяете i == hoursToSum вместо i