ЗМІСТ:
Циклічними називаються програми, що містять ділянки програми, що багаторазово повторюються.
Циклічні структурні елементи служать для організації багатократного виконання деякої послідовності дій по заданій умові. Характерною особливістю циклічних ділянок є наявність замкнутого контуру в схемі та наявність у цьому контурі перевірки умови, за якою виконання циклу завершується.
Для організації циклу необхідно:
а) задати початкове та кінцеве значення параметра циклу – змінної, що змінюється при повтореннях циклу;
б) перевірити умову, яка забезпечує вихід з циклу при досягненні мети; в) вказати крок зміни параметру циклу.
Цикл може бути реалізований явно (за допомогою операторів циклу) або неявно (за допомогою оператора безумовного переходу).
Цикли поділяються на дві категорії: цикли з відомим числом повторень (цикли з лічильником) та цикли з невідомим числом повторень (цикли з умовою). У першому випадку для організації циклу використовується спеціальна змінна (лічильник), значення якої змінюється у заданому діапазоні з деяким кроком. У другому випадку лічильника немає. Цикл триває доки виконується деяка умова. Його ще називають умовою циклу.
Класифікація циклів наведено на рис. 1.
Рис.1 Класифікація циклів
Розрізняють цикли, де число повторень заздалегідь відоме (арифметичні) і такі цикли, де число повторень заздалегідь невідоме, але його можна визначити під час виконання циклу (ітераційні).
Арифметичні (детерміновані) цикли характерні тим, що при їх виконанні кожне наступне значення параметра відрізняється від попереднього на деяке постійне значення (крок циклу). Кількість їх повторень наперед відома.
В ітераційних циклах кількість повторень заздалегідь невідома, а визначається в алгоритмі шляхом перевірки певних, наперед заданих умов.
Якщо число повторень відома заздалегідь, то краще використовувати оператор циклу з лічильником, у протилежному випадку оператор умовного циклу з верхнім або нижнім закінченням. Вміння використовувати циклічні алгоритми є базовими для реалізації додатків з використанням масивів даних і масивів елементів керування. Вони дозволяють краще зрозуміти сутність циклічних процесів, які зустрічаються під час розв’язання різних задач на комп’ютері.
За способом організації розрізняють цикли:
з передумовою (цикл-ПОКИ);
цикл з післяумовою (цикл-ДО);
цикл з параметром (цикл-ДЛЯ).
На рисунку показані три можливі модифікації циклічних елементів. Тут P – символ підготовки циклу; W – умова виконання циклу (або умова виходу з нього); S – основний символ (тіло циклу); Q – заголовок циклу в третій модифікації.
Рис.2 Модифікації циклічних елементів
Символ P у всіх модифікаціях не входить безпосередньо в цикл. Він виконується лише один раз до початку циклу та має на меті присвоїти змінним, які використовуються в циклі, початкових значень.
У циклі з передумовою для виконання операції S спочатку треба визначити, істинне чи хибне твердження W. Якщо W істинне, то виконують операцію S і знову повертаються до визначення істинності твердження W. Якщо ж твердження W хибне, то виконання операції S вважається закінченим. Отже, поки твердження W істинне, треба виконувати операцію S і повертатись до визначення істинності твердження W.
У циклі з післяумовою спочатку виконується операція S, а потім визначається істинність твердження W. Якщо твердження W хибне, то знову виконується операція S. Якщо ж твердження W істинне, то виконання операції S вважається закінченим. Отже, операція S і визначення істинності твердження W повторюються до настання істинності W. Зазначимо, що у циклі з передумовою тіло циклу розташовано зразу після умови і якщо при першій перевірці умова виходу з циклу виконується, то тіло циклу не виконується ні разу. У циклі ж з післяумовою тіло циклу розташовано перед умовою і виконується принаймні один раз перед першою перевіркою умові виходу з циклу.
Операції S та W в свою чергу можуть бути подані як сукупності простіших операцій, об'єднаних у структури розглянутих типів.
Важливою особливістю розглянутих структур є те, що кожна з них має єдиний вхід та єдиний вихід. При конструюванні алгоритму вихід кожної базової структури приєднується до входу іншої. Таким способом весь алгоритм подається у вигляді лінійної послідовності базових алгоритмічних структур. Така послідовність може складатись з єдиної базової алгоритмічної структури.
Ідею циклу розглянемо на прикладі руху об'єктів по екрану. Наприклад, по екрану повинен рухатися літак. Але в списках операторів більшості мов програмування, використовуваних професійними програмістами для створення ігор, немає команди руху. Тут потрібно задатися питанням – що таке рух? У кінематографі створюють рух за допомогою безлічі нерухомих слайдів-кадрів, на кожному наступному з яких об’єкт знаходиться трохи в іншому місці, ніж на попередньому. Показуючи ці кадри один за іншим з великою швидкістю, створюють ілюзію руху об’єкта. Точно так само роблять зі створенням ілюзії руху на екрані комп'ютера. Запишемо алгоритм руху літка по екрану зліва направо:
1. Задамо в пам’яті комп’ютера позицію літака в лівій частині екрана.
2. Намалюємо літак.
3. Зітремо його.
4. Змінимо в пам’яті комп'ютера позицію літака на міліметр правіше.
5. Перейдемо до команди 2.
Кожна з наведених команд алгоритму легко програмується на більшості мов. Будь-який комп'ютер, виконавши чергову команду, автоматично переходить до виконання наступної. Так, виконавши команду 2, комп'ютер завжди перейде до виконання команди 3. Але, нам потрібно змусити комп'ютер змінити цей порядок, що і було зроблено в команді 5. Таким чином, багаторазово виконується послідовність команд 2-3-4-5. Така багаторазово виконувана послідовність називається циклом. Можна сказати, що цикл – це один із засобів змусити комп'ютер довго працювати за допомогою короткої програми.
За короткий час після виконання команди 2 літак буде з'являтися на екрані і на команді 3 зникати, але цього достатньо, щоб людське око його помітив. Завдяки циклу він буде миготіти кожен раз в новому місці, а оскільки зміна кадрів буде дуже швидкою, то буде здаватися, що відбувається плавний рух літака.
Розглянемо як реалізується цикл у Visual Basic. Припустимо, потрібно, щоб комп'ютер нескінченно повторював виконання наступного фрагмента:
Debug.Print "Це";
Debug.Print "тіло";
Debug.Print "циклу";
Debug.Print "";
в результаті чого у вікні Immediate отримали:
Це тіло циклу Це тіло циклу Це тіло циклу Це тіло циклу. . . .
Якби оператори Visual Basic можна було писати українською, то для досягнення мети було б природно скористатися такою конструкцією:
мітка m1: Debug.Print "Це";
Debug.Print "тіло";
Debug.Print "циклу";
Debug.Print "";
йди до оператора, позначеного міткою m1
Зверніть увагу на "оператор" ЙДИ, який виконується після Debug.Print "" і його функція полягає в тому, щоб змусити комп'ютер перескочити до виконання оператора Debug.Print "Це", позначеного міткою m1.
А ось як цей фрагмент виглядає реально на Visual Basic:
Private Sub Command1_Click ()
m1: Debug.Print "Це";
Debug.Print "тіло";
Debug.Print "циклу";
Debug.Print "";
GoTo m1
End Sub
GoTo – це оператор безумовного переходу, який перекладається "йди до", m1 - мітка.
Мітка – це довільне ім'я або довільне не надто велике ціле позитивне число. Оператор GoTo можна писати в будь-яких місцях процедури і мітку можна ставити перед будь-яким оператором процедури, змушуючи комп'ютер таким чином перескакувати всередині процедури звідки завгодно куди завгодно. Правда, в складних процедурах і всередині складних операторів ця свобода перескакування істотно обмежується. Так не можна входити зовні всередину вкладених операторів, а ось зсередини назовні – можна. Мітка повинна закінчуватися двокрапкою (хоча, в разі мітки-числа це не обов'язково).
Група операторів, що виконуються багаторазово, називається тілом циклу. У нас це все оператори, починаючи з De-bug.Print "Це" і закінчуючи GoTo m1.
Зациклення. Якщо запустити дану програму, то через деякий час перед вами стане питання – як же її зупинити? Кнопки не реагуватимуть на натискання миші, ні на клавіші клавіатури. Так чинить кожна нормальна програма, виконуючи оператори коду. Різниця в тому, що в нормальній програмі повинні бути виключені ситуації, коли код виконується нескінченно або протягом дуже довгого часу.
Для переривання роботи програми, в тому числі і зациклення, існує комбінація клавіш Ctrl+Break. Програма перериває свою роботу, але не закінчує її, тобто Visual Basic переходить в режим переривання. Оператор програми, на якому вона була перервана, виділяється смугою жовтого кольору. Якщо запустити програму, вона продовжить роботу з перерваного місця.
Приклад програми:
k = 6
a = 100
GoTo 8
a = a + k
k = 2 * k
Print a
8: a = a + 1
k = k + 10
Print k, a
Програма надрукує цифри 16 101. Оператори виконуються в такій послідовності:
k=6
a=100
GoTo 8
a=a+1
k=k+10
Print k, a
Оператори a=a+k, k=2*k, Print a виконані не будуть взагалі, незважаючи на те, що написані. Циклу тут немає.
Завдання: визначити без комп'ютера, що буде друкувати програма:
n = 10
k = 0
Debug.Print "Рахуємо зайців"
met5: Debug.Print n;
n = n + k
GoTo m1
n = n + 1
m1: Debug.Print "зайців"
k = k + 1
GoTo met5
Debug.Print "Порахували зайців"
Завдання: Надрукувати безкінечну послідовність: 200 205 210 215 220 225 …
Програма:
Private Sub Command1_Click()
n = 200
m1: Debug.Print n
n = n + 5
GoTo m1
End Sub
Завдання: Запрограмувати плавний рух об'єкта. Для цього потрібно створити проект з великою формою і додати на нього маленький елемент керування Image (зображення). Надати йому картинку (властивість Picture). Програма, яка рухає зображення плавно направо:
Dim x As Double
Private Sub Command1_Click()
x = Image1.Left ' Комп'ютер дізнається, звідки починати рух
m1: x = x + 1 ' Комп'ютер збільшує горизонтальну координату на 1
Image1.Left = x ' Зображення стає на місце, вказане координатою
GoTo m1
End Sub
Якщо рух вийшов занадто повільним, то додайте крок x = x + 2. Якщо занадто швидким, то зменшіть x = x + 0.3.
Зверніть увагу, що в циклі не потрібно було малювати і витирати об'єкт. У випадку об'єктів, справу по перемальовуванні бере на себе Visual Basic. У випадку, коли використовуються фігури на формі і потрібно програмувати їх рух, тоді вам доведеться їх і малювати і витирати.
Для програмування завершення роботи циклу потрібно застосувати оператор GoTo всередині оператора If.
Завдання: За допомогою циклу надрукувати:
Початок рахунку 3 5 7 9 Кінець рахунку
Створіть проект з 4 кнопками і виконайте в покроковому режимі всі 4 варіанти (не звертаючи поки увагу на незрозумілі слова в заголовках таблиць, ці слова знадобляться трохи пізніше):
1) Do … Loop While
Private Sub Command1_Click()
Debug.Print "Початок рахунку";
f = 3
m: Debug.Print f;
f = f + 2
If f <= 9 Then GoTo m
Debug.Print "Кінець рахунку"
End Sub
2) Do ... Loop Until
Private Sub Command2_Click()
Debug.Print " Початок рахунку ";
f = 3
m1: Debug.Print f;
f = f + 2
If f > 9 Then GoTo m2 Else GoTo m1
m2: Debug.Print " Кінець рахунку "
End Sub
Тут оператор GoTo m виконується три рази. На четвертий раз умова f<=9 виявляється хибним і тому виконується не GoTo m, а наступний за If оператор Debug.Print "Кінець рахунку", тобто програма виходить з циклу і завершує свою роботу.
3) Do While ... Loop
Private Sub Command3_Click()
Debug.Print " Початок рахунку ";
f = 3
m1: If f <= 9 Then GoTo m3 Else GoTo m2
m3: Debug.Print f;
f = f + 2
GoTo m1
m2: Debug.Print " Кінець рахунку "
End Sub
4) Do Until … Loop
Private Sub Command4_Click()
Debug.Print " Початок рахунку ";
f = 3
m1: If f > 9 Then GoTo m2 Else GoTo m3
m3: Debug.Print f;
f = f + 2
GoTo m1
m2: Debug.Print " Кінець рахунку "
End Sub
Цикли настільки широко застосовуються в програмах, що у програмістів давно з'явилася потреба написати спеціальний оператор циклу, який не використовує оператор GoTo. Останній незручний хоча б тим, що у програмістів, які пишуть великі програми, багато уваги та часу йде на пошук поглядом позначок у тексті програми. До того ж GoTo порушує струнку ідеологію так званого "структурного програмування", коли порядок дій задається не стрибками з однієї програми в іншу, а ланцюжком вкладених один в одного операторів. Загалом, нині широко використовувати GoTo так само непристойно, як не оголошувати змінні.
Оператори циклу в Visual Basic діляться на 2 види: Do та For. Оператори циклу Do зустрічаються в 5 варіантах:
Do …. Loop
Do …. Loop While
Do …. Loop Until
Do While …. Loop
Do Until …. Loop
Спробуємо скласти з використанням варіанту оператора Do програму рішення задачі про друкування чисел 3 5 7 9. Для того, щоб точно визначити роботу цього варіанту оператора Do, наведемо її паралельно із зміненим 1 варіантом вирішення цієї задачі з того ж параграфа. Поясненням будь-якого оператора в правому стовпці є оператор, що стоїть в тій же рядку у лівому стовпці.
1) Private Sub Command1_Click()
Debug.Print "Початок рахунку";
f = 3
m:
Debug.Print f;
f = f + 2
GoTo m
End Sub
2) Private Sub Command0_Click()
Debug.Print "Початок рахунку";
f = 3
Do
Debug.Print f;
f = f + 2
Loop
End Sub
Do можна перевести, як "Роби", а розуміти слід як мітку. Loop можна перевести, як "Петля" або "Повернення назад", а розуміти слід так: "Повертайся до мітці Do ".
Порядок роботи обох програм абсолютно однаковий, так що можна вважати слово Do заміною мітки m, а слово Loop вважати заміною оператора GoTo m. Обидві програми нескінченно друкують 3 5 7 9 11 ..... Переривається цикл тільки з клавіатури.
Синтаксис оператора Do .... Loop:
Do
оператор_1
оператори_2
................
Loop
Рядки операторів між Do і Loop називаються тілом циклу.
Складемо з використанням 1 варіанту оператора Do програму рішення задачі про друк чисел 3 5 7 9.
1) Private Sub Command1_Click()
Debug.Print "Початок рахунку";
f = 3
m:
Debug.Print f;
f = f + 2
If f <= 9 Then GoTo m
Debug.Print "Кінець рахунку"
End Sub
2) Private Sub Command5_Click()
Debug.Print "Початок рахунку";
f = 3
Do
Debug.Print f;
f = f + 2
Loop While f <= 9
Debug.Print "Кінець рахунку"
End Sub
Синтаксис оператора Do .... Loop While:
Do
оператор_1
оператор_2
…………….
Loop While умова продовження циклу
1) Private Sub Command2_Click()
Debug.Print "Початок рахунку";
f = 3
m1:
Debug.Print f;
f = f + 2
If f > 9 Then GoTo m2 Else GoTo m1
m2: Debug.Print "Кінець рахунку"
End Sub
2) Private Sub Command6_Click()
Debug.Print "Початок рахунку";
f = 3
Do
Debug.Print f;
f = f + 2
Loop Until f > 9
Debug.Print "Кінець рахунку"
End Sub
Until перекладається "До тих пір, поки". Значить, Loop Until f > 9 слід розуміти так: "Повертайся до мітці Do до тих пір, поки не виконається умова f > 9".
Синтаксис оператора Do …. Loop Until:
Do
оператор_1
оператор_2
…………….
Loop Until умова завершення циклу
1) Private Sub Command3_Click()
Debug.Print "Початок рахунку";
f = 3
m1: If f <= 9 Then GoTo m3 Else GoTo m2
m3:Debug.Print f;
f = f + 2
GoTo m1
m2: Debug.Print "Кінець рахунку"
End Sub
2) Private Sub Command7_Click()
Debug.Print "Початок рахунку";
f = 3
Do While f <= 9
Debug.Print f;
f = f + 2
Loop
Debug.Print "Кінець рахунку"
End Sub
Do While f <= 9 слід розуміти так: "Поки f <= 9 виконуй оператори нижче аж до Loop".
Синтаксис оператора Do While .... Loop:
Do While умова продовження циклу роботи
оператор_1
оператор_2
…………….
Loop
1) Private Sub Command4_Click()
Debug.Print "Початок рахунку";
f = 3
m1: If f > 9 Then GoTo m2 Else GoTo m3
m3:Debug.Print f;
f = f + 2
GoTo m1
m2: Debug.Print "Кінець рахунку"
End Sub
2) Private Sub Command8_Click()
Debug.Print "Початок рахунку";
f = 3
Do Until f > 9
Debug.Print f;
f = f + 2
Loop
Debug.Print "Кінець рахунку"
End Sub
Do Until f > 9 слід розуміти так: "Виконуй оператори нижче аж до Loop, до тих пір, поки не виконається умова f > 9".
Синтаксис оператора Do Until .... Loop:
Do Until умова завершення циклу роботи
оператор_1
оператор_2
…………….
Loop
Завдання: Комп'ютер пропонує людині ввести слово, після чого роздруковує це слово, додавши знак оклику. Потім знову пропонує ввести слово і так до тих пір, поки людина не введе слово "Досить". Роздрукувавши його зі знаком оклику, комп'ютер відповідає "Вистачить так вистачить " і закінчує роботу. Придумаємо строкову змінну, в яку людина буде вводити з клавіатури слово. Назвемо її Slovo. Виберемо відповідний варіант оператора Do, це буде 2-й, і пишемо програму:
Dim Slovo As String
Private Sub Command1_Click()
Do
Slovo = InputBox("Введіть слово")
Debug.Print Slovo; "!"
Loop Until Slovo = "Вистачить"
Debug.Print "Вистачить так вистачить "
End Sub
Різниця між варіантами операторів Do:
Між While і Until. Використовується з міркування зручності. Що вам зручніше, вказувати комп'ютера, коли цикл потрібно продовжувати (f <= 9) або коли його потрібно закінчувати (f > 9)?
У тому, куди поставити умову – після Do або після Loop. У першому випадку можна придумати таку умову, коли тіло циклу не виконується жодного разу. Наприклад,
f = 3
Do Until f > 0
Debug.Print f;
f = f + 2
Loop
У другому випадку, якою б не була умова, тіло циклу виконається хоча б 1 раз.
Оператор Exit Do потрібен для того, щоб виходити з циклу в середині тіла циклу. Додамо його в тіло циклу одного з варіантів програми:
Private Sub Command2_Click()
Debug.Print "Початок рахунку";
f = 3
Do
Debug.Print f;
Exit Do
f = f + 2
Loop While f <= 9
Debug.Print "Кінець рахунку"
End Sub
Ось результат роботи цієї програми:
Початок рахунку 3 Кінець рахунку
Зазвичай Exit Do розміщують всередину оператора розгалуження:
Private Sub Command1_Click()
Debug.Print "Початок рахунку";
f = 3
Dо
Debug.Print f;
If f >= 9 Then Exit Do
f = f + 2
Loop
Debug.Print "Кінець рахунку"
End Sub
Ось результат роботи цієї програми:
Початок рахунку 3 5 7 9 Кінець рахунку
Виконуючи програму друку чисел 3 5 7 9, оператор Do виконав цикл 4 рази. Зазвичай, коли використовують оператори Do, то не обов’язково знати, скільки разів вони виконаються. Тим не менш, існує багато задач, для рішення яких цикл потрібно виконати саме певну кількість разів. У цьому випадку зручно використовувати оператор циклу For.
Завдання: 200 разів надрукувати слово БКСД.
Спробуємо спочатку вирішити задачу за допомогою оператора GoTo. Почнемо з такого фрагмента:
metka: Print "БКСД"
GoTo metka
Але тут цикл буде повторюватися безкінечно, а нам потрібно лише 200 разів. Для виходу з циклу оператор GoTo потрібно включити до складу оператора If. Крім цього потрібна змінна, яка змінює своє значення від виконання одного циклу до наступного. Придумаємо цій величині яке-небудь ім'я, скажімо i. Найпростіше завдання вирішує така процедура:
Private Sub Command1_Click()
i = 1
metka: Debug.Print "БКСД"
i = i + 1 'збільшення i на 1
If i <= 200 Then GoTo metka
End Sub
Тут i спочатку дорівнює 1, але до кожного наступного виконання циклу воно збільшується на 1. У перший раз виконуючи оператор If, комп'ютер перевіряє умову 2<=200 і знайшовши його істинним, виконує оператор GoTo metka. Вдруге перевіряється умова 3<=200 і т. д. В 199-й раз комп'ютер перевіряє умову 200<=200 і знайшовши його істинним, виконує оператор GoTo metka. В 200-й раз комп'ютер перевіряє умову 201<=200 і знайшовши його помилковим, виходить з циклу.
У нашому фрагменті "корисну" роботу виконує тільки один рядок з чотирьох - Print "БКСД" . Інші три рядки зайняті тим, що забезпечують виконання "корисною" рядка рівно 200 разів. Нам довелося організувати спеціальну змінну i, значення якої в кожен момент виконання програми говорить про те, в який раз виконується цикл. Змінна з такою властивістю називається лічильником циклу.
А тепер перепишемо програму так, щоб логіка її виконання більш менш відповідала логіці виконання програми з оператором For.
Private Sub Command1_Click()
i = 1
m1: Debug.Print "БКСД"
i = i + 1:
If i <= 200 Then GoTo m1
End Sub
Private Sub Command2_Click()
For i = 1 To 200
Debug.Print "БКСД"
Next i
End Sub
For i=1 To 200 розуміється так: Для i, що змінюються від 1 до 200, виконуй оператори, що стоять нижче аж до слова Next. Слово Next говорить про те, що треба збільшувати i на 1 і повертатися до початку циклу. При першому виконанні циклу i буде дорівнює 1, при другому - 2, і так далі. При останньому - 200. Змінна i називається змінною циклу.
У даному конкретному випадку самі по собі значення i не важливі, той же результат, ми отримали і з оператором For i = 501 To 700
Завдання: Роздрукувати пари чисел - 101 1000 102 990 103 980 104 970 ....... 109 920 110 910
Private Sub Command1_Click()
For a = 101 To 110
Debug.Print a;
Debug.Print 1000 - 10 * (a - 101)
Next a
End Sub
Досі змінна циклу змінювалася з кроком 1. Крок можна задавати будь-тоді оператор For дуже зручно використовувати замість Do – програми виходять коротшими. Напишемо, наприклад, програму для обчислення таблиць Брадіс (потрібно друкувати квадрати чисел від 0 до 1 з кроком 0.001):
Private Sub Command1_Click()
For a = 0 To 1.00001 Step 0.001
Debug.Print Format(a, "0.000"), Format(a * a, "0.000000")
Next a
End Sub
Тут Step 0.001 означає "Крок 0.001". Для більш акуратного друку використовується форматування.
Якщо потрібно порахувати таблиці Брадіса в зворотному порядку – від 1 до 0, то оператор циклу потрібно було б записати так:
For a = 1 To 0 Step -0.001
Синтаксис оператора For:
For змінна = вираз_1 To вираз_3 [ Step вираз_3]
оператор_1
оператор_2
.................
Next [змінна]
Змінна тут повинна мати числовий тип. Після Next ви можете її не писати, але в програмах, де багато For і Next, я рекомендую це робити для легкості читання програми, щоб вам зручніше було розібратися, для якого For цей Next.
Приклад запису: For j=a+b To 2*s Step k*10
Якщо крок не задано, він вважається рівним 1, тобто змінна на кожному виконанні циклу збільшується на 1. Якщо ж ми хочемо зменшувати її на 1, нам доведеться явно вказати Step -1.
Робота оператора For при позитивному (або нульовому) кроці:
Передусім обчислюється вираз_1, і змінної циклу (нехай це буде i) присвоюється його значення. Потім обчислюється в вираз_2 і порівнюється з i. Якщо i > вираз_2, то оператор For завершує свою роботу, так нічого і не зробивши. В іншому випадку виконуються оператори, що стоять між рядками For та Next. Після їх виконання значення i збільшується на значення вираз_3 (або за його відсутності на 1 і знову порівнюється з вираз_2. Якщо i > вираз_2, то оператор For завершує свою роботу, інакше знову виконуються оператори, i знову збільшується і т. д.
Робота оператора For при негативному кроці:
Передусім обчислюється вираз_1, і змінної циклу (нехай це буде i) присвоюється його значення. Потім обчислюється вираз_2 і порівнюється з i. Якщо i < вираз_2, то оператор For завершує свою роботу, так нічого і не зробивши. В іншому випадку виконуються оператори, що стоять між рядками For та Next. Після їх виконання значення i зменшується на значення модуля вираз_3 і знову порівнюється з вираз_2. Якщо i < вираз_2, то оператор For завершує свою роботу, інакше знову виконуються оператори, i знову зменшується і т. д.
Оператор Exit For
Оператор Exit For – ще один спосіб виходу з циклу For. Застосовується він абсолютно аналогічно оператору Exit Do.
Питання для перевірки:
За допомогою яких операторів можна організувати цикл?
Яке призначення має умовний оператор?
Порівняйте за призначенням лінійну та блочну форми умовного оператора?
Придумайте три задачі з повсякденного життя, де було б використано умовний оператор.
Яке призначення мають оператори циклу?
У яких випадках використовуються оператори умовного циклу? Наведіть приклади.
За допомогою яких операторів можна організувати цикл?
Які типи циклів розрізняють?
Який синтаксис має оператор циклу While…Wend?
Який синтаксис має оператор циклу Do…Loop?
У чому полягає відмінність у вживанні ключових слів While та Until? Чи можуть вони вживатись одночасно?
Який синтаксис має оператор циклу For…Next?
Яким чином можна використовувати вкладені цикли під час програмування?
Чи завжди можна замінити оператор циклу з лічильником на оператор умовного циклу і навпаки?
У яких випадках використовуються оператори умовного циклу? Наведіть приклади.
Який синтаксис має оператор циклу While…Wend?
Який синтаксис має оператор циклу Do…Loop?
У чому полягає відмінність у вживанні ключових слів While та Until? Чи можуть вони вживатись одночасно?
Який синтаксис має оператор циклу For…Next?
Що таке "тіло циклу"?
Які цикли називаються "ітераційними"?
Як сформувати цикл For? Як він працює?
Як сформувати цикл "Do"? Як він працює?
Чим відрізняються цикли з перед- та постумовами?
Як запобігти безкінечному циклу?
Що таке вкладений цикл? Наведіть приклади.