Бесконечный цикл for, но рабочий while.
Добавлено: 02 ноя 2009, 13:06
Столкнулся с проблемой, когда 2 одинаковых цикла дают разный результат.
Функция, которая подсчитывает разницу между 2 значениями в минутах.
Проблема в цикле с подсчетом минут, а точнее:
В цикле for дебаггер показывает, что когда i = 60, ему присваивается значение 0, затем он пропускает проверку на неравенство и далее срабатывает i++. Из-за чего собственно весь сыр-бор.
Ломаю голову, почему идентичный циклу while, цикл for не работает. Или это тот случай, когда for бессилен?
Функция, которая подсчитывает разницу между 2 значениями в минутах.
Проблема в цикле с подсчетом минут, а точнее:
Код: Выделить всё
//Входящие данные:
//minutes_in_interval = 0;
//minute = 0;
//a_previous_time.minute = 59;
if(minute != a_previous_time.minute)
{
//Бесконечный цикл
/*for(int i = a_previous_time.minute; i != minute; i++)
{
minutes_in_interval++;
if(i == 60)
{
i = 0;
}
}*/
//Рабочий цикл
int m = a_previous_time.minute;
while(m != minute)
{
minutes_in_interval++;
m++;
if(m == 60)
{
m = 0;
}
}
}
Ломаю голову, почему идентичный циклу while, цикл for не работает. Или это тот случай, когда for бессилен?