Мельница данных- Операторы PascalScript (раздел целиком) (01.11.2024) | (одним файлом) |
Операторы PascalScript |
Операторы разделяются точкой с запятой (;). Операторы могут быть одним из следующих: |
1. Составной оператор | ||
1begin 2 //Другие операторы endОператоры, размещенные внутри составного оператора, разделяются точкой с запятой. Никаких ограничений на состав операторов и количество уровней вложенности не накладывается.
|
2. Оператор присваивания | ||||||||
Выражение1 := Выражение2 Присваивает значение выражения Выражение2 выражению Выражение1. Типы Выражения1 и Выражения2 должны быть совместимы (совпадать по классу домена либо оба быть числовыми). Для этого на Выражение1 (стоящее слева от знака равенства, lvalue) накладывается ряд ограничений. Это выражение должно быть:
|
3. Оператор вызова | ||
ИмяПроцедуры [(Параметр1, Параметр2 ...)] "ИмяПроцедуры" должно быть:
|
4. Оператор ветвления | ||||
1if Выражение then 2 //Оператор1 3[else 4 //Оператор2] Выражение должно быть логического типа. В случае если значение Выражения истинно, выполняется Оператор1. Часть else является необязательной и относится к последнему оператору if, не имеющему таковой. В случае ее наличия Оператор2 выполняется, если значение Выражения ложно.
|
5. Оператор выбора | ||
1case Выражение of 2 Значение1: //Оператор1 3 Значение2: //Оператор2 4 ... 5[else 6 //Оператор ] end Заменяет каскад операторов if. Значение Выражения должно быть числового типа. Часть else выполняется в случае, если Выражение не равно ни одному из перечисленных вариантов. Эта часть не является обязательной.
|
6. Цикл с предусловием | ||
1while Выражение do 2 //Оператор Оператор выполняется до тех пор, пока значение Выражения истинно. Выражение должно быть логического типа. Если при входе в цикл Выражение не истинно, то тело цикла не будет выполнено ни одного раза.
|
7. Цикл с постусловием | ||
1repeat 2 //Операторы 3until Выражение Операторы выполняются до тех пор, пока значение Выражения ложно. Выражение должно быть логического типа. Обратите внимание, что внутри себя оператор может содержать несколько операторов, разделенных точкой с запятой. Тело цикла обязательно будет выполнено хотя бы один раз.
|
8. Цикл с параметром | ||
1for Параметр := Выражение1 (to|downto) Выражение2 do 2 //Оператор Параметр цикла обязан быть простой локальной переменной. Функционально цикл с параметром эквивалентен циклам:
|
9. Цикл по экземплярам | ||
1for each Параметр of ИмяКласса [with Выражение] 2 [by [-] Выражение [, [-] Выражение]] do 3 //Оператор Цикл осуществляется по выборке среди экземпляров класса ИмяКласса, для которых истинно Выражение. Если Выражение не задано, то по всем экземплярам. Ссылка на текущий в рамках цикла экземпляр присваивается в локальную переменную Параметр. Выражение должно определяться относительно переменной Параметр. Выраженния, следующие за ключевым словом by, определяют порядок обхода экземпляров. Знак "-" перед выражением (любого типа) определяет обратный порядок обхода.
|
10. Оператор прекращения цикла |
break Происходит немедленный выход из цикла. Выполняется финализация операторов защиты завершения, которыми защищено тело цикла. Допустим только в теле цикла с предусловием, цикла с постусловием, цикла с параметром или цикла по экземплярам. |
11. Оператор выхода из подпрограммы |
exit Происходит немедленный выход из программного блока. Выполняется финализация операторов защиты завершения. |
12. Оператор защиты завершения | ||
1try 2 //Операторы1 3finally 4 //Операторы2 end Выполняются операторы Операторы1, разделенные точкой с запятой. В случае возникновения исключительной ситуации управление сразу передается на Операторы2, и после их выполнения исключение остается активным. Если исключения не произошло, выполняются Операторы2. Если среди Операторов1 встречается оператор exit, то Операторы2 все равно выполняются.
|
13. Оператор обработки исключительных ситуаций | ||||
1try 2 //Операторы1 3except 4 //Операторы2 end Выполняются операторы Операторы1. В случае возникновения исключительной ситуации управление передается на Операторы2. Если исключительных ситуаций не возникло, Операторы2 не выполняются никогда. При передаче управления на Операторы2 исключительная ситуация деактивирована. Для ее повторного возбуждения можно воспользоваться оператором возбуждения исключения без указания текстовой строки сообщения.
|
14. Оператор возбуждения исключения |
raise [Выражение]Возбуждает исключение, которое, если не было обработано блоком except оператора обработки, дойдет до пользователя. Пользователь увидит сообщение, определяемое Выражением. Выражение должно иметь строковый тип и является обязательным для всех случаев, кроме части except оператора обработки исключений. |
15. Оператор унаследованного вызова | ||
inherited Работает только в унаследованном переопределенном методе. Вызывается метод предка с параметрами, заданными в параметрах к моменту вызова. Если программный блок представляет собой тело функции, то в псевдопеременной Result будет результат выполнения метода предка.
|