While loop description (#33955)

This commit is contained in:
Aleksei Aksenov
2019-08-08 01:04:26 +03:00
committed by Randell Dawson
parent d0560e9026
commit e135ab81aa

View File

@ -1,14 +1,20 @@
---
title: Loops of all kinds
localeTitle: Петли всех видов
localeTitle: Различные циклы
---
# Петли всех видов в C
# Различные циклы в C
Циклы - это то, что вы используете, когда у вас есть код, который вы хотите использовать в цикле, а это означает, что после его запуска вам может понадобиться цикл для начала и повторного запуска. Есть несколько из них в C.
Циклы используются когда у вас есть код, который вы хотите зациклить, в том смысле, что после его выполнения вам может потребоваться вернуться к его началу и запустить его повторно. В C есть несколько их видов.
## В то время как петли
Они могут быть подразделены на:
Самые простые из них - это петли. Хотя циклы будут выполняться, пока условие в скобках будет истинным. Они должны использоваться, когда вы хотите, чтобы что-то произошло до тех пор, пока не произойдет определенное условие.
(a) Циклы с предусловием - циклы, в которых условие проверяется перед каждой итерацией, напр. цикл for, цикл while
(b) Циклы с постусловием - циклы, в которых тело выполнятся единожды даже если условие ложно, напр. цикл do-while
## Циклы while
Циклы while - cамые простые из перечисленных. Их тело выполняется пока условие в скобках истинно. Их следует использовать в том случае, когда вы хотите, чтобы что-то происходило до наступления определенного условия.
### Синтаксис
```
@ -17,7 +23,7 @@ while(condition) {
}
```
Вот пример:
Пример:
```C
#include <stdio.h>
@ -35,11 +41,11 @@ while(condition) {
}
```
Хотя утверждение в цикле while истинно, содержимое в скобках будет запущено. Когда программа попадает во `while(my_number)` , она проверяет утверждение в скобках. Если этот оператор является ложным, он не будет запускать цикл while. Вместо этого он пропустит код между двумя скобками и подберется туда, где он остановился.
Пока условие в цикле while истинно, будет происходить выполнение содержимого фигурных скобок. Когда программа выполняет строку `while(my_number)` , она проверяет выражение в круглых скобках. Если это выражение ложно, цикл while не будет запущен. Вместо этого программа пропустит код между фигурными скобками и пойдет далее.
Если утверждение верно, код в скобках будет запущен. Как только код в скобках будет запущен, оператор в скобках будет снова проверен. Как и раньше, если утверждение истинно, код будет запущен, если он неверен, код будет пропущен.
Если выражение истинно, код в фигурных скобках будет запущен. Как только его выполнение завершится, выражение в скобках будет проверено снова. Как и раньше, если выражение истинно, код будет запущен, если ложно, код будет пропущен.
То, что вы можете столкнуться при игре с этим или любым другим циклом, - это идея бесконечного цикла - цикл, который будет запускаться бесконечно много раз, потому что ничего не остановить. Иногда это может произойти специально:
Исследуя работу этого или любого другого цикла, вы можете столкнуться с таким явлением как бесконечный цикл - цикл, который будет выполняться бесконечно много раз, потому что его ничто не останавливает. Иногда это может произойти специально:
```C
while(1) {
@ -47,7 +53,7 @@ while(1) {
}
```
Конечно, это может случиться и случайно. Вот тот же код, что и раньше, но с тонкой разницей, которая превращает его в бесконечный цикл:
Конечно, это может произойти и случайно. Вот тот же код, что и раньше, но с незаметным отличием, которое превращает его в бесконечный цикл:
```C
#include <stdio.h>
@ -65,7 +71,7 @@ while(1) {
}
```
Когда этот цикл while будет оценен, `my_number` будет проверен, если он не равен 10. Это не так, потому что он был инициализирован в 11, поэтому код внутри цикла while будет запущен, а `my_number` будет 12. 12 не равным 10, поэтому код внутри цикла while будет запущен, а `my_number` будет 13. Это будет продолжаться вечно, потому что это условие никогда не станет ложным - единственный способ остановить его - заставить программу перестать работать. Это пример бесконечного цикла, потому что если он останется один, он будет работать бесконечно много раз.
Когда будет запущен цикл while, переменная `my_number` будет проверена на равенство 10. Это не так, поскольку она была инициализирована числом 11, поэтому код тела цикла while будет запущен, а `my_number` примет значение 12. 12 не равно 10, поэтому код тела цикла while будет запущен, а `my_number` примет значение 13. Это будет продолжаться вечно, потому что это условие никогда не станет ложным, единственный способ остановить цикл - принудительно завершить программу. Это пример бесконечного цикла, потому что без вмешательства он будет выполняться бесконечно много раз.
## Проводящие петли
@ -635,4 +641,4 @@ A
return 0;
}
```
```