Skip to main content

Петлі

Область «Контролер» містить блоки, що управляють виконанням інших блоків, розміщених усередині них. Блоки управління бувають двох видів: блоки if do ( вони описані на окремій сторінці) та блоки, що контролюють, як часто виконується дія всередині них. Останні називаються циклами, тому що дія всередині них, що називається тілом циклу або тілом, може повторюватися багаторазово. Кожен запуск циклу називається ітерацією.

Блоки для створення петель

повторювати безперервно

Блок безперервного повторення виконує код у тілі, доки програма не завершиться.

повторення

Блок повторення виконує код у тілі вказану кількість разів. Наступний блок, наприклад, виведе Hello! десять разів:

image-1623518566418.png

повторювати доти, доки

Уявіть собі гру, в якій гравець кидає кістки і складає всі показані значення, поки сума менша за 30. Наступні блоки реалізують цю гру:

  1. Змінна з назвою total містить початкове значення 0.
  2. Цикл починається з перевірки, чи менше 30. Якщо так, то запускаються блоки в тілі.
  3. Генерується випадкове ціле число від 1 до 6 (для імітації значення кістки) і зберігається змінна з ім'ям кубик .
  4. Виводиться викинуте («кубик») число.
  5. Змінна total збільшується на кількість кинутих чи випалих кубиків.
  6. Після досягнення кінця циклу контролер повертається до кроку 2.

image-1623518580740.png

Після завершення циклу контролер виконує всі наступні блоки (не показано). У прикладі цикл завершується після того, як буде виведено певну кількість випадкових цілих чисел від 1 до 6, а потім змінна total матиме значення суми цих чисел, що дорівнює як мінімум 30.

повторювати до

повторювати до тих пір, поки цикли повторюють своє тіло, поки виконується умова. Повторюйте, доки петлі не стануть аналогічними, з тією різницею, що вони повторюють тіло доти, доки не буде виконано певну умову. Наступні блоки еквівалентні попередньому прикладу, оскільки цикл виконується до тих пір, поки значення total не стане більше або дорівнює 30.

image-1623518591524.png

рахувати від до

Цикл count from to збільшує значення змінної, починаючи з початкового значення і закінчуючи другим значенням, а також крок за кроком від третього значення, при цьому тіло виконується один раз для кожного значення змінної. Наступна програма, наприклад, виводить числа 1, 3 та 5.

image-1623518609859.png

Як показують наступні два цикли, кожен з яких виводить числа 5, 3 і 1, перше значення може бути більшим за друге. Поведінка однакова, незалежно від цього, чи є величина збільшення (третє значення) позитивної чи негативної.

image-1623518616934.png

image-1623518630361.png

для кожного

Блок для кожного подібний до циклу count from to , але замість змінних циклу в числовій послідовності він послідовно використовує значення зі списку. Наступна програма виводить кожен елемент списку "альфа", "бета", "гамма":

Bild7_d.PNG

Розбивайте блоки

Більшість циклів виконуються до тих пір, поки не буде виконана умова переривання (для повторних блоків) або поки не будуть прийняті всі значення змінної циклу (для підрахунку і для кожного циклу). Два необхідні рідко, але іноді блоки пропонують додаткові можливості управління поведінкою циклу. Їх можна використовувати з будь-яким циклом, хоча в наступному прикладі показано їх використання в циклі for each.

продовжити з наступною ітерацією

continue with next iteration змушує пропустити блоки, що залишилися, в тілі циклу і почати наступну ітерацію циклу.

Наступна програма виводить альфа під час першої ітерації циклу. Під час другої ітерації виконується блок продовження наступної ітерації, у результаті виведення «бета» пропускається. В останній ітерації друкується "гамма".

Bild8_d.PNG

Прорив

Блок break out дозволяє передчасно вийти із циклу. Наступна програма виводить "альфа" для першої ітерації, потім перериває цикл під час другої ітерації, коли змінна циклу дорівнює "бета". Третя точка у списку ніколи не досягається.

Bild9_d.PNG