6. Оператори
41
RepetativeStat =
ForStatement   |
WhileStatement |
RepeatStatement.
6.2.4.1. Цикъл с предусловие (while)
Общият вид на оператора за цикъл с предусловие е следния:
WhileStatement =
'while' Expression 'do' Statement.
Намиращият се след ключовата дума DO оператор се повтаря до тогава, докато
изразът Expression има стойност TRUE. Expression е израз от логически тип, който се
пресмята преди всяко изпълнение на тялото на цикъла. Това означава, че тялото на
цикъла може да не се изпълни нито веднъж (ако Expression = FALSE).
6.2.4.2. Цикъл с постусловие (repeat)
Общият вид на оператора за цикъл с постусловие е следния:
RepeatStatement =
'repeat' Statement {';'
   Statement }
'until ' Expression.
Намиращите се между ключовите думи REPEAT и UNTIL оператори се повтарят
до тогава, докато изразът Expression получи стойност TRUE (Expression е израз от
логически тип, който се пресмята след всяко изпълнение на тялото на цикъла). Това
означава, че тялото на цикъла се изпълнява поне веднъж.
6.2.4.3. Цикъл с параметър (for)
При цикъла с параметър един оператор се повтаря определен брой пъти, като
едновременно с това параметърът на цикъла се увеличава/намалява при всяка
итерация. Общият вид на оператора е:
ForStatement =
'for' Ident ':=' Expression ('to' |
'downto') Expression 'do' Statement.
Намиращата се след ключовата дума FOR променлива е параметър на цикъла и
трябва да бъде от дискретен (ordinal) (с изключение на LongInt) тип. Нейната стойност
се увеличава или намалява с 1 (в зависимост от това дали е използвана ключовата дума
TO или DOWNTO) на всяка итерация на цикъла (по-точно на всяка итерация
променливата получава стойност чрез стандартните функции SUCC или PRED, тъй като
увеличаването с 1 е възможно само за числови променливи). Двата израза, ограждащи
ключовата дума TO (DOWNTO), определят началната и крайната стойност на
параметъра на цикъла. Тези два израза се пресмятат само веднъж, в началото на
изпълнението на оператора FOR, и ако още тогава началната стойност е по-голяма
(по-малка, ако е използвано DOWNTO) от крайната, то цикълът не се изпълнява нито
веднъж.
Необходимо е спазването на следните ограничения:
*
зададена като параметър променливата не трябва да изменя стойността си
в тялото на цикъла (въпреки че UniPascal не прави проверки за нарушение
на тази забрана);
*
параметърът на FOR цикъла трябва да бъде локална променлива за блока,
в който се използва цикъла;
*
след нормално завършване на цикъла FOR, стойността на параметъра на
цикъла е неопределена.
<<  <  GO  >  >>

Вернуться к началу сайта