![Цикл while (програмування)](https://static.studi.se/lessons/thumbs_small/MAH406.png)
Цикл while (програмування)
![Ескіз відео](/_next/image?url=https%3A%2F%2Fstream.binogi.net%2Fstream%2FMAH406%2FMAH406_XX_en.jpg&w=3840&q=75)
Правда чи неправда? Якщо ви хочете повторити код, ви можете використовувати цикл.
Лена написала програму для свого робота щоб вона могла подарувати Леону та Марії їхній улюблений шоколад. І це добре робить. Леон запускає робота. Воно підбирає шматочок шоколаду, дивиться на це і бачить, що це молочний шоколад і перевіряє, чи є в ньому горіхи. Ні. Без горіхів. Тому Марія отримує шматочок шоколаду. Леон не отримав жодного шоколаду. Отже, він перезапускає програму. Робот бере в руки новий шматочок шоколаду. Цього разу це темний шоколад. Робот дає той шоколад Леону. «Мені не турбує перезапуск програми». "Ні. Якщо нам доведеться перезапустити робота, ми могли б так само легко взяти шоколадки самі». Марія та Леон не хочуть раз у раз перезапускати програму. Як вони можуть уникнути цього? Марія хоче покращити програму Олени. Отже, спочатку їй потрібно подивитися, як написаний псевдокод. Інструкції такі: візьміть шматочок шоколаду і віддай Марії чи Леону або викинути шоколад. Інструкції виконуються лише один раз, але Марія хоче, щоб програма починалася спочатку і йти в циклі. Її вимога: поки в коробці є шоколадки, програму слід повторити: повторити. Вимога Марії — умова в циклі. Коли умова істинна, інструкції повторюються. Коли умова помилкова, програма продовжується в коді. Це цикл "while". Марія пише, що програма має поставити запитання користувачеві: Скільки цукерок у коробці? Відповідь зазначається у змінній під назвою шоколадні цукерки. Вимога «поки в коробці є шоколадки» є те саме, що і змінна "шоколадні цукерки більше 0". Якщо вказівки в циклі виконуються, шматочок шоколаду буде видалено. Потім потрібно ввести нове значення для змінної chocolates. Отже, Марія кладе в ряд внизу петлю. Шоколадних цукерок дорівнює шоколаду мінус 1. Тепер трохи важко побачити, які рядки належать до циклу і призначені для повторення. Як це може бути зрозумілішим у коді? Ну, Марія робить відступ у рядках так. Тепер Марія збирається протестувати програму. Вона починає... ...і входи є 10 шоколадок. Потім програма перевіряє умову в циклі while. Змінна шоколадка дорівнює 10. Це більше 0. Умова вірна. Якщо умова істинна, інструкції виконуються в циклі. Робот бере в руки шоколадку. Це молочний шоколад. Отже, перша умова циклу істинна. Наступна умова: чи є горіхи? Ніяких горіхів. Тоді вказівки викидати шоколад не будуть. Замість цього програма переходить до: «Інакше: подаруй Марії шоколад». Тепер кількість шматочків шоколаду менше, ніж раніше. І змінна chocolates отримує значення 10 мінус 1, тобто 9. Програма виконала всі інструкції в циклі і повертається до початку циклу. Чи умова все ще вірна? Так, цукерок 9. Він більше 0. Інструкції в циклі виконуються знову. Робот бере новий шоколад. А цукерок зменшується на 1 до 8. Програма знову перевіряє умову. 8 більше 0 і умова вірна а потім робот продовжує. Він повторює цикл доки умова істинна. Але коли коробка порожня, тоді кількість шоколадних цукерок дорівнює 0. Що потім? 0 не більше 0. Отже, умова хибна і робот не виконує інструкції в циклі. Програма триває, але рядків після циклу немає. Програма закінчується. За допомогою нової петлі, Леон і Марія можуть отримати від робота багато шоколаду без необхідності перезапускати програму. Це добре! Так, Леон і Марія?