"justify"> Можлива робота оператора циклу, при якому змінна-лічильник буде не збільшуватися, а зменшуватися. У цьому випадку ключове слово to замінюється на downto:
лічильник:=вираз - 1 downto вираз - 2 do дію;
Відповідно, вираз - 1 повинно бути більше або дорівнює висловом - 2.
Умовний оператор циклу зручно використовувати в тому випадку, коли кількість повторень заздалегідь не відомо:
умова do
тіло циклу;
Цей цикл буде виконуватися до тих пір, поки істинно умова (логічний вираз, що повертає значення типу Boolean). При цьому якщо цей вираз відразу одно false, тіло циклу не буде виконано жодного разу.
Потрібно дуже уважно стежити за написанням умови і контролем завершення циклу, так як в результаті помилки цикл while буде повторюватися нескінченну кількість разів, що призведе до зацикливанию і зависання програми.
Умовний оператор повторення спочатку виконує тіло циклу, а потім уже перевіряє виконання умови:
тіло ціклаусловіе
Таким чином, цей варіант циклу гарантує, що тіло циклу буде виконаний принаймні один раз. І буде виконуватися до тих пір, поки умова не стане істинним (тобто true). Варто відзначити, що це єдиний оператор Delphi, в якому тіло циклу не вимагається укладати в логічні дужки begin/end. Початок і кінець тіла циклу визначаються за ключовими словами repeat і until. Разом з операторами циклу використовуються спеціальні команди:
- команда переривання циклу;
- команда продовження циклу.
Команда переривання циклу застосовується, якщо в процесі виконання операторів тіла циклу з'ясовується необхідність його завершення. Ось ця команда: Break;
При її виконанні управління передається на перший оператор, наступний за оператором циклу.
Команда продовження циклу дозволяє негайно продовжити виконання циклу, пропустивши всі залишилися оператори в тілі циклу, тобто почати наступну ітерацію.
Ось ця команда: Continue;
Справедливості заради варто розповісти про ще один операторі, що дозволяє змінити послідовність виконання програми. Це оператор переходу: goto мітка;
У якості мітки може використовуватися будь допустимий ідентифікатор або число в діапазоні від 0 до 9999. Мітку попередньо необхідно оголосити в розділі опису змінних, але з допомогою не ключового слова var, а ключового слова label:
меткa;
іліспісок міток;
Переходити можна як вниз, так і вгору по програмі. Двокрапка відділяє мітку від оператора, на який проводиться перехід.
1.2.3 Оператори організації розгалужень
Оператор розгалуження if - одне з найпопулярніших засобів, які змінюють природний порядок виконання операторів програми. Ось його загальний вигляд:
lt; умова gt; then
lt; оператор 1 gt;
lt; оператор 2 gt ;;
Умова - це вираз булевского типу, воно може бути простим або складним. Складні умови утворюються за допомогою логічних операцій та операцій відносини. Зверніть увагу, що перед словом else крапка з комою не ставиться.
Логіка роботи оператора if очевидна: виконати оператор 1, якщо умова істинна, і оператор 2, якщо умова помилкова. Пояснимо сказане на прикладі:
Console;
{$ APPTYPE CONSOLE};
Var, B, C: Integer;:=2;:=8; A gt; B then:=A:=B;
Writeln ( C= raquo ;, C); ( Press Enter to exit ... ) ;;
end.
В даному випадку значення виразу А gt; У ложно, отже на екрані з'явиться повідомлення C=8.
В оператора if існує й інша форма, в якій else відсутній:
lt; умова gt; then lt; оператор gt ;;
Логіка роботи цього оператора if ще простіше: виконати оператор, якщо умова істинна, і пропустити оператор, якщо воно помилкове. Пояснимо сказане на прикладі:
Console;
{$ APPTYPE CONSOLE};
Var, B, C: Integer;:=2;:=8;:=0; A gt; B then C:=A + B; ( C= raquo ;, C); ( Press Enter to exit ... ) ;;
end.
У результаті на екрані з'явиться повідомлення С=0, оскільки вираз А gt; У ложно і присвоювання С:=А + В пропускається.
Один оператор if може входити до складу іншого оператора ...