65 lines
3.0 KiB
Markdown
65 lines
3.0 KiB
Markdown
|
---
|
|||
|
title: Infinite Loops
|
|||
|
localeTitle: Бесконечные петли
|
|||
|
---
|
|||
|
# Бесконечные петли
|
|||
|
|
|||
|
Инфинитный цикл представляет собой оператор цикла ( `for` , `while` , `do-while` ), который не заканчивается сам по себе.
|
|||
|
|
|||
|
Условие проверки оператора цикла определяет, будет ли тело цикла выполняться или нет. Таким образом, условие проверки, которое всегда верно, будет продолжать выполнять тело цикла, навсегда. Так обстоит дело в петле infinte.
|
|||
|
|
|||
|
Примеры:
|
|||
|
|
|||
|
```java
|
|||
|
// 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);
|
|||
|
```
|
|||
|
|
|||
|
Обычно, если ваш цикл работает бесконечно, это ошибка, которая не должна возникать, поскольку бесконечный цикл не останавливается и предотвращает запуск остальной части программы.
|
|||
|
|
|||
|
```java
|
|||
|
for(int i=0;i<100;i++){
|
|||
|
|
|||
|
if(i==49){
|
|||
|
i=0;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Цикл выше работает бесконечно, потому что каждый раз, когда я приближаюсь к 49, он устанавливается равным 0. Это означает, что я никогда не достигаю 100, чтобы завершить цикл, поэтому цикл представляет собой бесконечный цикл.
|
|||
|
|
|||
|
Но программа, застрявшая в таком цикле, будет бесконечно использовать компьютерные ресурсы. Это нежелательно и является типом «ошибки времени выполнения».
|
|||
|
|
|||
|
Чтобы предотвратить ошибку, программисты используют оператор break для выхода из цикла. Разрыв выполняется только при определенном условии. Использование команды выбора, такой как if-else, обеспечивает то же самое.
|
|||
|
|
|||
|
```java
|
|||
|
while (true)
|
|||
|
{
|
|||
|
// do something
|
|||
|
|
|||
|
if(conditionToEndLoop == true)
|
|||
|
break;
|
|||
|
|
|||
|
// do more
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Основным преимуществом использования бесконечного цикла над регулярным циклом является читаемость.
|
|||
|
|
|||
|
Иногда тело петли легче понять, если петля заканчивается посередине, а не в конце / начале. В такой ситуации лучшим выбором будет бесконечный цикл.
|