Параметром циклу може бути змінна довільного типу.
Зміну параметру циклу повністю покладено на програміста і змінювати його можна як завгодно.
Цикл з післяумовою завжди виконується хоча б один раз, незважаючи на значення змінної, що є його параметром.
Який з циклів використовувати?
Питання, винесене в заголовок параграфа постійно постає перед програмістами та тими, хто ними намагається стати. Дійсно, який з циклів краще використовувати і чому?
На це риторичне запитання стопроцентної вірної відповіді ще не дав ніхто, хоча і знайдено деякі ситуації, коли майже необхідно використовувати саме якийсь один конкретний спосіб організації циклу з трьох розглянутих. Але таких ситуацій на сьогоднішній день небагато, тому ми обмежимось лише загальними зауваженнями з даного приводу.
Який з циклів використовувати – справа особистого смаку програміста, але в деяких ситуаціях краще використовувати конкретну структуру. Так, при обробці повідомлень з клавіатури краще всього використовувати цикл repeat... until. Пояснимо це на конкретному прикладі. Нехай нам потрібно вводити і опрацьовувати дані, що поступають з клавіатури, про зріст учнів класу. Зрозуміло, що зріст, який дорівнює нулю, не може бути в жодного з учнів. Тому, попередньо повідомивши користувача про те, що число 0 буде ознакою закінчення вводу вхідних даних, ми можемо так організувати введення інформації:
|
|
...
Repeat
Readln (Rost);
... { інші дії, що необхідно виконувати в циклі }
Until Rost = 0;
...
Цикл з післяумовою найчастіше і використовують саме при обробці повідомлень з клавіатури, ми це з вами побачимо при вивченні розділу “Робота с символьними величинами”. Але і при вирішенні інших задач цей цикл досить часто використовують.
Цикл for рекомендується використовувати тільки в тих випадках, коли точно відомо, що в процесі виконання параметр циклу повинен приймати саме ці конкретні значення і змінювати значення параметру ми ні за яких умов не будемо. Така ситуація може виникнути, наприклад, при заповненні таблиць (див. розділ “Масиви”), побудові сітки системи координат і т.д.
Найбільш часто досвідчені програмісти використовують саме цикл while і зрозуміло чому. Адже використання цього циклу забезпечує перевірку умови виконання циклу і є найбільш раціональним способом трактувати свої думки з точки зору саме машинної логіки.
Для тих, хто вивчає мову Pascal після вивчення мови Basic, це спочатку здається трохи не зрозумілим. Але нагадуємо, що в циклі з параметром у нас змінна – параметр цикл змінюється тільки автоматично і тільки через одиницю! Після усвідомлення того факту, що в Паскалі на відміну від Бейсика не можна змінювати крок виконання циклу for, все для них стане також повністю зрозумілим.
Проте наголошуємо, що всі три види циклу в Паскалі введені для зручності і, в принципі, трохи помудрувавши, можна довільне завдання вирішити при допомозі довільного циклу. В той же час можна взагалі обійтись лише одним циклом while, що довів ще Дейкстра.