While loop description (#33955)
This commit is contained in:
committed by
Randell Dawson
parent
d0560e9026
commit
e135ab81aa
@ -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;
|
||||
}
|
||||
|
||||
```
|
||||
```
|
||||
|
Reference in New Issue
Block a user