You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: chapter-07-complex-loops.md
+15-5Lines changed: 15 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -208,13 +208,23 @@ print а
208
208
Тествайте решението си тук: [https://judge.softuni.bg/Contests/Practice/Index/1057#6](https://judge.softuni.bg/Contests/Practice/Index/1057#6).
209
209
210
210
211
-
## Do-while цикъл
211
+
## While True + break цикъл
212
212
213
-
Следващият цикъл, с който ще се запознаем, е **`do-while`**, в превод - **прави-докато**. По структура, той наподобява **`while`**, но има съществена разлика между тях. Тя се състои в това, че **`do-while`** ще изпълни тялото си **поне веднъж**. Защо се случва това? В конструкцията на **`do-while`** цикъла, **условието** винаги се проверява **след** тялото му, което от своя страна гарантира, че при **първото завъртане** на цикъла, кодът ще се **изпълни**, а **проверката за край на цикъл** ще се прилага върху всяка **следваща** итерация на **`do-while`**:
213
+
Следващият тип конструкция за цикъл, с която ще се запознаемдокато изучаваме програмирането, е `while True` + `break` цикълът (за по-кратко `while` + `break` цикъл). Неговата идея е **да повтаря фрагмент от кода** многократно докато не се достигне до **изрично прекратяване на цикъла**, обикновено след `if` проверка в тялото на цикъла. Ето как изглежда този цикъл на практика като Python код:
Следва обичайната поредица от примерни задачи, чиито решения ще ни помогнат да разберем по-добре **`do-while`** цикъла.
217
+
Горният пример се нарича “**обърнат `while` цикъл**”, защото условието за изход от цикъла е накрая, а не в началото. По същина горната конструкция представлява “безкраен цикъл” с проверка на дадено условие за изход вътре в тялото на цикъла.
218
+
219
+
В програмирането операторът `break` безусловно прекратява даден цикъл и преминава към първата инструкция веднага след него. В горния пример в края на цикъла се проверява дадено условие и ако то не е вярно, цикълът се прекратява.
220
+
221
+
Конструкцията за цикъл `while` + `brea`k в много други езици за програмиране се реализира с `do-while` конструкция (в превод “**прави-докато**”), но последната няма директен еквивалент в Python. За да се постигне същото поведение, в Python се използва безкраен цикъл (`while True`) и когато се достигне условието за изход от него, цикълът се прекъсва (с `break`).
222
+
223
+
Конструкцията `while` + `break` предоставя повече гъвкавост, отколкото `while` циклите, защото позволява изходът от цикъла да е на **произволно място** в него (например в началото, в средата или в края), дори позволява да има изход от цикъла на няколко различни места (с няколко `break` оператора).
224
+
225
+
По структура `while` + `break` цикълът наподобява много класическия `while` цикъл, но има съществена разлика: `while` се изпълнява 0 или повече пъти (според входното условие на цикъла), докато `while` + `break` изпълнява тялото си **поне веднъж**. Защо се случва това? В конструкцията на `while True` + `break` цикъла, **условието** винаги се проверява **вътре в тялото му**, докато при класическият `while` цикъл проверката за изход от цикъла е винаги в началото, преди неговото тяло.
226
+
227
+
След като се запознахме с концепцията за `while` + `break` цикъл с условие за изход, което не е задължително в началото, сега нека преминем през обичайната поредица от примерни задачи, в които можем да приложим наученото.
218
228
219
229
220
230
### Пример: изчисляване на факториел
@@ -270,7 +280,7 @@ print а
270
280
271
281
### Безкраен цикъл. Що е то?
272
282
273
-
Безкраен цикъл наричаме този цикъл, който **повтаря безкрайно** изпълнението на тялото си. При **`while`**и **`do-while`**циклите проверката за край е условен израз, който **винаги** връща **`true`**. Безкраен **`for`** възниква, когато **липсва условие за край**.
283
+
Безкраен цикъл наричаме този цикъл, който **повтаря безкрайно** изпълнението на тялото си. При **`while`** циклите проверката за край е условен израз, който **винаги** връща **`true`**. Безкраен **`for`** възниква, когато **липсва условие за край**.
274
284
275
285
Ето как изглежда **безкраен `while`** цикъл:
276
286
@@ -560,7 +570,7 @@ for i in range(1, n + 1, 3):
560
570
print(i)
561
571
```
562
572
563
-
Циклите **`while`**/ **`do-while`**се повтарят докато е в сила дадено **условие**:
573
+
Циклите **`while`** се повтарят докато е в сила дадено **условие**:
0 commit comments