Книга ActionScript 3.0 - Оглавление

Глава1. Основы языка
Part1. Числовые типы данных (Number, int, unit)
Part1.1. Арифметические операции, объект Math
Part2. Логический тип данных Boolean
Part3. Строковый тип данных String
Part3.1. Класс String и его методы/свойства
Part3.2. Преобразование строки в число и обратно
Part4. Работа с массивами Array
Part4.1. Методы и свойства класса Array
Part4.2. Сортировка массива
Part4.3. Фильтрация массива
Part5. Работа с массивами Vector
Part6. Тип данных Object
Part6.1. Класс Object и преобразования типов
Part7. Передача данных по ссылке
Part8. Неопределенные значения NaN, null и undefined
>> Part9.1. Оператор выбора if-else
Part9.1.1 “? :” – альтернативная конструкция if-else
Part9.2. Оператор выбора switch - case
Part10.1. Оператор цикла for и for in
Part10.2. Операторы цикла while и do
Part11. Таймеры
Книга ActionScript 3.0


Ch1.Part9.1. Оператор выбора if – else | Книга ActionScript 3.0

Условные конструкции позволяют сделать выбор из различных условий. Конструкция if-else записывается в следующем формате:

Где

  • <условие> это переменная типа Boolean или операция возвращающая в результате значение типа Boolean
  • <блок1> – это код который выполняется если значение в <условие> равно true
  • <блок2> – это код который выполняется в случае когда <условие> равно false

Рассмотрим простой пример:

Заметки:

1) Тип данных Boolean

Обратите внимание, что во втором блоке я написал что “a не меньше чем b”, если бы я написал что “a больше чем b” – это было бы ошибкой, потому что числа могут быть равными, и в этом случае тоже выполняется <блок2>. Если вы хотите проверить что число a меньше или равно b, вам надо использовать оператор <=.

Как я говорил выше, в поле <условие> может быть как переменная типа Boolean, так и операция возвращающая значение типа Boolean. Записывается это так:

Список операторов для определения условия.

Вы можете также комбинировать условные операторы, с помощью булевых операций:

Рассмотрим пример того как можно комбинировать различные условия:

В последнем примере, мы проверяли условие D без условных операторов. Это означает то переменная D должна иметь валидное значение. Валидное, в случае числовых значений, означает что число не должно быть равным 0. В случае всех остальных типов данных, переменная не должна быть равна null.

Т.е. если D это число (int, uint, Number), то условие

эквивалентно условию

или


Если D это Boolean, то условие

эквивалентно условию


Если же D содержит не числовое и не Boolean значение (String, Array, Object … ), тогда условие

эквивалентно условию:


Для условия

существует обратная запись, которая проверяет что значение является не(!) валидным:

Эквивалентной записью будет:


Например следующее условие

читается так: “Если B больше чем C ИЛИ D имеет не валидное значение”. Первое условие B > C не выполняется, но переменная D имеет значение 0(т.е. не валидное), а это значит что вся конструкция имеет значение true, т.к. мы использовали логический оператор ИЛИ.

Вы можете группировать условия с помощью скобок ( и ). Рассмотрим на примере как это делается и для чего это нужно:

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

  1. На первом этапе проверяется то что в скобке. Т.к. B не больше чем C получается что условие в скобках равно false
  2. На втором этапе наше условие записывается так: if ( false || !D ). А это условие читается так: Если ложь или переменная D имеет не валидное значение. Переменная D имеет не валидное значение, а это значит что условие !D является истинным
  3. В итоге на третьем этапе наше условие записывается так: if ( false || true ), а это читается так: Если ложь или истина, что в результате дает истину(true). Поэтому наша сложная условная конструкция возвращает true
Обратите внимание, что если бы на первом этапе в скобке получилось бы значение true, то приложение не стало бы дальше что то проверять. Потому что мы использовали оператор логического ИЛИ(||), а это значит что если первый операнд равен true, то не важно каким будет значение второго операнда. Если же использовать оператор логического И(&&), то второе условие проверяться не будет в том случае если первый операнд равен false.

Это полезно знать например когда вы проверяется валидность массива и его длину. Рассмотрим пример:

Такая конструкция может привести к ошибке выполнения в том случае если по каким то причинам ваша переменная array имеет значение null. К ошибке приведет проверка array.length, т.к. нельзя вычислить длину массива который равен null. Если вы не уверены что array всегда валидный, то проверку надо писать таким образом:

Данная конструкция не вызовет ошибок, потому что если array равен null, вторая часть условия проверяться не будет, т.к. в этом нет смысла.

В заключение об операторе выбора if-else я вам покажу как можно сделать множественный выбор. Например вам необходимо проверить принадлежит ли число промежуткам 0..3, 3..6, 6..10:

Если вы хотите проверить равно ли число одному из значений от 0 до 10, вы конечно можете написать if-else 10 раз, как в предыдущем примере. Но есть более изящный способ – конструкция switch-case. Подробнее об этой конструкции – далее по списку.
Эту статью прочитали 3149 раз

Скачать исходные коды примеров из книги можно в облаке.
Возникли вопросы по книге? Не стесняйтесь спрашивать в комментариях или любым другим способом на странице Контакты.
Присоединяйтесь к нам в социальных сетях: ВКонтакте, Twitter и Facebook
Понравилась книга? Буду благодарен если вы поделитесь ссылкой с друзьями.



<< Предыдущий раздел | Следующий раздел >>
Книга ActionScript 3.0 - Оглавление

Глава1. Основы языка
Part1. Числовые типы данных (Number, int, unit)
Part1.1. Арифметические операции, объект Math
Part2. Логический тип данных Boolean
Part3. Строковый тип данных String
Part3.1. Класс String и его методы/свойства
Part3.2. Преобразование строки в число и обратно
Part4. Работа с массивами Array
Part4.1. Методы и свойства класса Array
Part4.2. Сортировка массива
Part4.3. Фильтрация массива
Part5. Работа с массивами Vector
Part6. Тип данных Object
Part6.1. Класс Object и преобразования типов
Part7. Передача данных по ссылке
Part8. Неопределенные значения NaN, null и undefined
>> Part9.1. Оператор выбора if-else
Part9.1.1 “? :” – альтернативная конструкция if-else
Part9.2. Оператор выбора switch - case
Part10.1. Оператор цикла for и for in
Part10.2. Операторы цикла while и do
Part11. Таймеры


Комментарии ВКонтакте:




Комментарии Facebook:




Комментарии WordPress: