2.9 KiB
title | localeTitle |
---|---|
Infinite Loops | Бесконечные циклы |
Бесконечные циклы
Бесконечный цикл представляет собой оператор цикла ( for
, while
, do-while
), который не заканчивается сам по себе.
Условие проверки оператора цикла определяет, будет ли тело цикла выполняться или нет. Таким образом, условие проверки, которое всегда верно, приведет к тому, что тело цикла будет выполняться бесконечно.
Примеры:
// Infinite For Loop
for ( ; ; )
{
// some code here
}
// Infinite While Loop
while (true)
{
// some code here
}
// Infinite Do While Loop
do
{
// some code here
} while (true);
Обычно, если ваш цикл работает бесконечно, это ошибка, которая не должна возникать, поскольку бесконечный цикл не останавливается и предотвращает запуск остальной части программы.
for(int i=0;i<100;i++){
if(i==49){
i=0;
}
}
Цикл выше работает бесконечно, потому что каждый раз, когда я приближаюсь к 49, он устанавливается равным 0. Это означает, что я никогда не достигну 100, чтобы завершить цикл, поэтому цикл представляет собой бесконечный цикл.
Программа, застрявшая в таком цикле, будет бесконечно использовать компьютерные ресурсы. Это нежелательно и является типом «ошибки времени выполнения».
Чтобы предотвратить ошибку, программисты используют оператор break для выхода из цикла. 'break' выполняется только при определенном условии. Использование команды выбора, такой как if-else, обеспечивает то же самое.
while (true)
{
// do something
if(conditionToEndLoop == true)
break;
// do more
}
Основным преимуществом использования бесконечного цикла над регулярным циклом является легкость чтения.
Иногда тело цикла легче понять, если цикл заканчивается посередине, а не в конце / начале. В такой ситуации лучшим выбором будет бесконечный цикл.