Почему это условие while-l oop остается верным? - PullRequest
0 голосов
/ 03 марта 2020

Ошибка здесь в том, что число никогда не прекращает увеличиваться (0 -> бесконечно). Почему l oop не останавливается, когда totalCareTime достигает 25?

   int totalCareTime = 0;

   while (totalCareTime <= 25 || interrupted == false)
   {
       ++totalCareTime;
       cout << totalCareTime << endl;


       if (time == time + emergencySam || time == time + emergencySid)
       {
           interrupted = true;
       }

   }

1 Ответ

4 голосов
/ 03 марта 2020

Вы используете ||, поэтому до тех пор, пока выполняется одно из условий, l oop продолжается. Если interrupted остается false (что всегда будет так, если emergencySam или emergencySid не имеют значения 0; неясно, как они установлены или их можно изменить вообще), l oop будет go навсегда. Измените значение на &&, если вам нужно, чтобы оба условия выполнялись, чтобы l oop продолжал работать.

...