Skip to content

Commit 1651cd3

Browse files
authored
Fixed the concepts of while + break loop
Introduced "while + break" loop instead of "do-while" loop
1 parent 2fbc35a commit 1651cd3

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

chapter-07-complex-loops.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,13 +208,23 @@ print а
208208
Тествайте решението си тук: [https://judge.softuni.bg/Contests/Practice/Index/1057#6](https://judge.softuni.bg/Contests/Practice/Index/1057#6).
209209

210210

211-
## Do-while цикъл
211+
## While True + break цикъл
212212

213-
Следващият цикъл, с който ще се запознаем, е **`do-while`**, в превод - **прави-докато**. По структура, той наподобява **`while`**, но има съществена разлика между тях. Тя се състои в това, че **`do-while`** ще изпълни тялото си **поне веднъж**. Защо се случва това? В конструкцията на **`do-while`** цикъла, **условието** винаги се проверява **след** тялото му, което от своя страна гарантира, че при **първото завъртане** на цикъла, кодът ще се **изпълни**, а **проверката за край на цикъл** ще се прилага върху всяка **следваща** итерация на **`do-while`**:
213+
Следващият тип конструкция за цикъл, с която ще се запознаем докато изучаваме програмирането, е `while True` + `break` цикълът (за по-кратко `while` + `break` цикъл). Неговата идея е **да повтаря фрагмент от кода** многократно докато не се достигне до **изрично прекратяване на цикъла**, обикновено след `if` проверка в тялото на цикъла. Ето как изглежда този цикъл на практика като Python код:
214214

215215
![](/assets/chapter-7-1-images/00.Do-while-01.png)
216216

217-
Следва обичайната поредица от примерни задачи, чиито решения ще ни помогнат да разберем по-добре **`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` цикъл с условие за изход, което не е задължително в началото, сега нека преминем през обичайната поредица от примерни задачи, в които можем да приложим наученото.
218228

219229

220230
### Пример: изчисляване на факториел
@@ -270,7 +280,7 @@ print а
270280

271281
### Безкраен цикъл. Що е то?
272282

273-
Безкраен цикъл наричаме този цикъл, който **повтаря безкрайно** изпълнението на тялото си. При **`while`** и **`do-while`** циклите проверката за край е условен израз, който **винаги** връща **`true`**. Безкраен **`for`** възниква, когато **липсва условие за край**.
283+
Безкраен цикъл наричаме този цикъл, който **повтаря безкрайно** изпълнението на тялото си. При **`while`** циклите проверката за край е условен израз, който **винаги** връща **`true`**. Безкраен **`for`** възниква, когато **липсва условие за край**.
274284

275285
Ето как изглежда **безкраен `while`** цикъл:
276286

@@ -560,7 +570,7 @@ for i in range(1, n + 1, 3):
560570
print(i)
561571
```
562572

563-
Циклите **`while`** / **`do-while`** се повтарят докато е в сила дадено **условие**:
573+
Циклите **`while`** се повтарят докато е в сила дадено **условие**:
564574

565575
```python
566576
num = 1

0 commit comments

Comments
 (0)