КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Операторы if-then-else
Логические операторы НЕ, И, ИЛИ В одном условном операторе может быть указано несколько условий. Для этой цели служат логические операторы НЕ (not), И (and) и ИЛИ (or). Нижеприведенрядсоответствующихпримеров. if (not s.radius == 10) then messagebox "Radius is not 10." if (x == 5 and y == 6) then z = 0 if (x == 5 or y == 6) then z = 0 Основы MAXScript Если оператор not окажется не совсем удобным, условие "не равно" можно проверить и по-другому, используя синтаксис if!=, например: if s.radius!= 10 then messagebox "Radius is not 10." При проверке нескольких условий, как правило, требуются круглые скобки для группирования условий в логическом порядке, что особенно важно для сложных выражений. Выражения в круглых скобках всегда вычисляются в первую очередь. Каждый из операторов в следующем примере дает разные результаты: if (x == 5 or y == 6) and z == 10 then w = 0 if x == 5 or (y == 6 and z == 10) then w = 0 Если в сложном выражении опущены круглые скобки, порядок его вычисления может быть определен с помощью правил предшествования логических операторов. Такие правила определяют старшинство одних логических операторов над другими при вычислении выражения. Наивысшим приоритетом обладает оператор НЕ, который вычисляется в первую очередь. Операторы И и ИЛИ вычисляются слева направо, причем оператор И имеет больший приоритет: x and y or z В соответствии с правилами предшествования приведенное выше выражение без круглых скобок эквивалентно следующему выражению: (x and y) or z То же самое имеет место и в следующем выражении: not x or y and z Оно эквивалентно выражению (not x) or (y and z) Напомним, что новые операторы сценария вводятся в MAXScript с новой строки, а для продолжения оператора на следующей строке служит обратная косая черта (\). Но из этого правила имеется исключение для конструкции if-then: части if и then условного оператора могут указываться в отдельных строках. Ведь после выражения if непременно должно следовать выражение then, поэтому его можно поместить в следующей строке: b = box() if b.height!= 10.0 then b.length = 40.0 Приведенная выше конструкция дает такой же результат, как и следующая: b = box() if b.height!= 10.0 then b.length = 40.0 Оператор b.length указан с отступом для обозначения того факта, что он является частью условия if-then. Это делается только ради повышения удобочитаемости кода сценария. Глава 1 Если ввести фрагмент кода из предыдущего примера в приемнике команд, то ничего особенного при этом не произойдет. Объясняется это особенностями управляющей структуры if-then-else. Простую конструкцию if-then можно расширить, дополнив ее выражением else, причем каждая из частей if, then и else условного оператора может быть указана в отдельной строке, например: if b.pos == 10 then b.height = 40 else b.height = 80 Выражение else дает возможность указать альтернативное действие, если условие внутри выражения if не выполняется. Напомним, что операторы выполняются в приемнике команд построчно по мере их ввода. В следующем выражении будет показано, каким образом приемник команд реагирует на ввод оператора if-then-else. 1. Введите в приемнике команд следующее выражение: 2. Введите следующее выражение: if b.pos.x == 0 then b.height = 40 После ввода данного выражения объект не изменился, а приемник команд никак не отреагировал на это выражение — ни положительным результатом, ни сообщением об ошибке.
Ведь приемнику команд неизвестно, собираетесь ли вы ввести далее оператор else. Ему требуется завершенная структура if-then-else, прежде чем выполнять код сценария MAXScript. Если в следующей строке вы введете выражение else, приемник команд будет знать, что делать дальше. Если же выражения else не окажется в следующей строке, приемник команд предположит, что его и не следует ожидаь. 3. Введите в приемнике команд следующее выражение: elseb.height = 10.0 Теперь приемник команд отреагирует, и высота параллелепипеда изменится до величины 40,0 единиц. Основы MAXScript
4. Введите следующий фрагмент кода и нажмите комбинацию клавиш <Shift+Enter> после каждой введенной строки: if b.pos.x == 0 then b.height = 40 messagebox "Done" Несмотря на отсутствие в этом фрагменте кода выражения else, приемник команд будет знать, что ввод этого кода завершен, и в итоге появится окно сообщения. Примечание. Если сценарии выполняются в окне редактора сценариев по команде EvaluateAll (Вычислить все), то приведенная выше процедура ввода и вычисления конструкции if-then-else не действует, поскольку в этом случае просто выполняется весь сценарий.
Дата добавления: 2014-10-15; Просмотров: 802; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |