Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Блоковые выражения

Читайте также:
  1. Present Simple для выражения будущего действия.
  2. Q: Оператор (statement) присваивания, который используется для присваивания результата выражения переменной имеет
  3. Английские выражения на тему «Внешность».
  4. Блоковые и потоковые шифры
  5. Выполните упражнения, используя модель английских утвердительных предложений I live, слова и выражения из тестовых заданий.
  6. Выражения признательности

Часто бывает необходимо сгруппировать несколько простых выражений в одно. Для этого группу объединяемых выражений заключают в круглые скобки. Выражения, составляющие сложное, или как его еще называют, блоковое выражение, обычно записываются каждое на новой строке, например

(x = 6

y = 7

z = 10

)

но допускается записывать их и на одной, разделяя знаком “; ”

(x = 6; y = 7; z = 10)

Можно так же смешивать обе формы записи

(x = 6

y = 7; z = 10)

Блоковое выражение возвращает результат последнего выполненного в нем простого выражения. Например, после выполнения такого скрипта

a = (x = 6; y = 7; z = 10)

переменная a получит значение 10.

Допускается, как это ни странно, пустое блоковое выражение, которое возвращает значение undefined, и записывается так

a = ()

Применять его можно для временной записи, с тем, чтобы после отладки остальной части скрипта, вернуться к нему и вписать туда то, что нужно.

При работе с блоковыми выражениями следует быть внимательным с локальными переменными, и вдвойне, если блоковые выражения вложены друг в друга. Рассмотрим пример

a = 1

(local a = 2

print a

(local a = 3

print a

)

print a

)

print a

В результате выполнения такого скрипта, на экране интерпретатора появится следующий результат

1 -- Первая строка

2 -- Вторая строка

3 -- Третья строка

3 -- Четвертая строка

3 -- Пятая строка

1 -- Шестая строка

1 -- Седьмая строка

В первой строке выведен результат присвоения единицы глобальной переменной a. Далее начинается блоковое выражение, в котором объявляется локальная переменная a. Ей присваивается значение 2, которое и выводится на экран функцией print. Результат выведен во второй строке. После этого снова начинается блоковое выражение второго уровня вложенности, в котором определяется локальная переменная а, ей присваивается значение 3, которое выводится на экран, см. третью строку. Затем второе блоковое выражение завершается, и логично было бы ожидать, что переменная a вернется к старому значению 2. Ничуть не бывало, и значение в четвертой строке красноречиво свидетельствует об этом. Как видите, она сохранила значение 3. В пятой строке выведен результат, возвращенный блоковым выражением после его завершения. Вот теперь переменная a вернется к своему старому значению 1, и напечатает его в шестой строке. Седьмая строка – результат, возвращенный функцией print.

Хорошим тоном программирования считается явно объявлять все локальные переменные, использованные в блоковом выражении с помощью операции local в первой строке этого выражения.

Следует так же отметить, что MAXScript поддерживает неявное объявление переменных, что так же может быть источником ошибок. Например

(local VariableWithVeryLongName

VariableWithVeryLongNam = 1

x = sin VariableWithVeryLongName

)

Объявление переменной с очень длинным именем VariableWithVeryLongName локальной не спасает нас от того, что при присвоении ей значения можно ошибиться в названии. Языки Паскаль или C выдали бы ошибку на этом операторе, но MAXScript спокойно заводит новую локальную переменную с ошибочным именем. При использовании уже верного написания переменной можно получить сколь угодно неожиданные результаты. Если, как в приведенном примере, выражение короткое, то найти ошибку не составит труда. В более длинном и сложно организованном выражении это может стоить времени и нервов.

 


Дата добавления: 2015-10-31; просмотров: 113 | Нарушение авторских прав


Читайте в этой же книге: С чего начать | Области видимости | Выделение памяти и уборка мусора | Литералы имен объектов | Литералы массивов | Каскадирование префиксов | Операторы цикла do и while | Создание функций, локальных внутри структуры | Символьные строки | Логические (Булевы) значения |
<== предыдущая страница | следующая страница ==>
Выражения сравнения| Контекстные выражения

mybiblioteka.su - 2015-2024 год. (0.007 сек.)