, DO ... LOOP і WHILE ... WEND. Деякі з цих операторів мають кілька варіантів синтаксису і дозволяють організувати які завгодно цикли, так що вам немає необхідності користуватися неправильним оператором GOTO. Далі в цьому розділі будуть описані всі згадані конструкції.
Оператор циклу FOR ... NEXT повторює групу операторів вказану кількість разів. Нижче наведено його повний синтаксис.
лічильник=початок ТО кінець [STEP крок]
[оператори]
[EXIT FOR]
[оператори] [лічильник]
де: лічильник - обов'язковий елемент; змінна числового типу, використовувана в якості лічильника циклу; переменная не може бути типу Boolean і не може бути елементом масиву.
початок і кінець - обов'язкові елементи; вирази, що задають початкове і кінцеве значення лічильника циклу.
крок - необов'язковий елемент; якщо він використовується, то вказується після ключового слова STEP; цей елемент задає величину збільшення лічильника, тобто при кожному проходженні циклу лічильник буде збільшуватися на крок, поки не досягає значення 1 кінець; прирощення крок може бути як позитивним, так «і негативним; значення 0 задає нескінченний цикл (в цьому випадку потрібно передбачити свій власний варіант виходу з циклу); якщо крок не вказаний, то прирощення вважається рівним 1.
оператори - блок операторів, складових тіло циклу; жоден з операторів тіла циклу не повинен міняти значення лічильника циклу (це може призвести до непередбачуваних наслідків); FOR - необов'язкова конструкція; якщо присутній, то при отриманні управління здійснює перехід за межі оператора FOR ... NEXT (перериває виконання оператора циклу); за допомогою конструкції EXIT FOR можна запрограмувати альтернативний варіант виходу з циклу (наприклад, при досягненні какоголибо умови, в тому числі для виходу з нескінченних циклів); використовується в поєднанні з умовними операторами.
Конструкція NEXT служить для завершення оператора циклу. Після ключового слова NEXT можна вказати змінну циклу лічильник, ту ж саму, що і в заголовку циклу (після ключового слова FOR). Це робити не обов'язково, але настійно рекомендується. Інакше ви обов'язково заплутаєтеся, особливо при використанні вкладених циклів.
Оператор циклу FOR EACH ... NEXT виконує блок операторів, складових тіло циклу, для всіх елементів масиву або набору (колекції). Синтаксис цього оператора наступний:
EACH елемент IN група
[оператори]
[EXIT FOR]
[оператори] [елемент]
де: елемент - змінна, використовувана для ітерації за елементами масиву або колекції (набору). Для ітерації за елементами набору, елемент може бути змінної типу Variant або об'єктній змінній відповідного типу, а для ітерації за елементами масиву - тільки змінної типу Variant.
група - ім'я масиву чи колекції (набору).
Інші елементи оператора аналогічні відповідним елементам оператора FOR ... NEXT який описувався вище. Нижче наводиться приклад, який ілюструє найбільш часто зустрічається спосіб використання оператора FOR EACH ... NEXT.
У цьому прикладі оператор циклу FOR EACH NEXT використовується для ітерації за елементами набору відкритих в даний момент форм. Мінлива циклу MyForm оголошена як змінна об'єктного типу FORM. Колекція всіх відкритих форм називається FORMS. Таким чином, у наведеному вище прикладі в операторі циклу перевіряється властивість Caption всіх відкритих в даний момент форм. Якщо серед відкритих форм є форма, що має підпис (Caption) Форма2, то на екран видається відповідне повідомлення і цикл переривається.
Найбільш гнучким і зручним у сімействі операторів циклу є оператор DO ... LOOP. Існує два варіанти синтаксису цього оператора.
[{WHILE | UNTIL} умова] 'Перший варіант
[оператори]
[EXIT DO]
[оператори] 'Другий варіант
[оператори]
[EXIT DO]
[оператори] [{WHILE | UNTIL} умова]
1.2.5 Процедури і функції
При розробці великих програмних продуктів прийнято розбивати програму на декілька логічних частин, які називаються підпрограмами. Це покращує структуру програми, спрощує її розуміння, робить програму більш прозорою і читається, дозволяючи тим самим уникнути багатьох помилок. Якщо програма призначена для вирішення завдання в цілому, то підпрограма використовується для виконання логічно завершеною послідовності дій.
У мові Delphi представлені два різновиди підпрограм - процедури і функції. Принципова відмінність між підпрограмами полягає в їх оформленні та способі передачі ...