Логическое ИЛИ ActionScript 

 

 

Оператор логического ИЛИ чаще всего применяется для инициирования  

определенного действия, когда выполняется по крайней мере одно из двух условий. 

Например, «если я голоден или испытываю жажду, я пойду на кухню». Оператор 

логического ИЛИ обозначается символами | |. Обычно символ | можно ввести, 

нажав одновременно клавишу Shift и клавишу с изображением обратного слэша (\\), 

расположенную в правом верхнем углу большинства западных клавиатур.  

Оператор логического ИЛИ имеет следующий обобщенный вид: 

выражение1 \\ \\ выражение2 

Если оба выражения (выражение1 и выражение2) или результаты вычисления этих 

выражений являются логическими значениями, то оператор логического ИЛИ 

возвращает значение true, когда результатом одного из выражений является true, 

а значение false только в том случае, когда результатом обоих выражений  

является false. 

true || false // true, поскольку первый операнд равен true 

false jj true // true, поскольку второй операнд равен true 

true jj true // true (достаточно, чтобы любой операнд был равен true) 

false jj false // false, поскольку оба операнда равны false 

Когда результат выражения выражение1 не является логическим значением, среда 

Flash сначала преобразует результат в логическое значение. Если результатом 

преобразования окажется значение true, то оператор логического ИЛИ вернет 

значение выражения выражение1. В противном случае оператор логического ИЛИ 

вернет значение выражения выражение2. Описанное правило продемонстрировано 

в следующих примерах: 

О || "hi there!" // результат выражения выражение1 не преобразуется 

// в значение true, поэтому оператор возвращает 

// значение выражения выражение2: "hi there!" 

"hey" || "dude" // выражение выражение1 представляет непустую строку, 

// поэтому результат этого выражения преобразуется 

// в значение true и оператор возвращает значение 

// выражения выражением "hey" 

false || 5 + 5 // результат выражения выражение1 не преобразуется 

// в значение true, поэтому оператор возвращает 

// значение выражения выражение2 (то есть 10) 

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

перечислены в разд. «Преобразование в примитивные типы» гл. 8. 

Возвращаемые оператором логического ИЛИ значения, которые не являются  

логическими, на практике используются редко. Вместо этого результат оператора ИЛИ 

обычно применяется в условных операторах для принятия логических решений. 

Рассмотрим следующий код: 

var х = 10; 
var у = 15; 
if (х || у) { 
// Этот блок кода выполняется в том случае, когда значение 
// одной из переменных х или у не равно 0 
В третьей строке вместо логического значения условного выражения оператора i f 
мы видим оператор логического ИЛИ (х | | у). Первый шаг в вычислении  
значения выражения х | | у заключается в преобразовании числа 10 (которое  
является значением первого операнда — х) в логическое значение. Любое ненулевое 
конечное число преобразуется в логическое значение true. Оператор логического 
ИЛИ возвращает значение переменной х, равное 10. Таким образом, для среды 
выполнения Flash оператор i f выглядит следующим образом: 
if A0) { 
// Этот блок кода выполняется в том случае, когда значение 
// одной из переменных х или у не равно О 
Однако 10 является числом, а не логическим значением. Что же происходит  
дальше? Оператор i f преобразует результат выполнения оператора логического ИЛИ 
к логическому значению. В данном случае 10 преобразуется в логическое значение 
true и среда Flash представляет наш код следующим образом: 
if (true) { 
// Этот блок кода выполняется в том случае, когда значение 
// одной из переменных х или у не равно О 
Вот и ответ. Результат условного выражения равен true, поэтому код,  
заключенный в фигурные скобки, выполняется. 
Обратите внимание, что, если значение результата первого выражения  
оператора логического ИЛИ равно true, вычисление результата второго выражения 
является ненужным и, как следствие, неэффективным действием. По этой  
причине среда выполнения Flash вычисляет результат второго выражения только 
тогда, когда значение результата первого выражения равно false. Эту  
особенность полезно использовать в тех случаях, когда вы не хотите вычислять 
второе выражение до тех пор, пока результатом первого выражения не окажется 
f als е. В следующем примере выполняется проверка, входит ли указанное число 
в заданный диапазон. Если число слишком маленькое, нет необходимости в  
выполнении второй проверки, которая определяет, является ли число слишком 
большим. 
if (xPosition < 0 || xPosition > 100) { 
// Этот блок кода выполняется, если значение переменной 
// xPosition находится в диапазоне от 1 до 100 включительно 
Заметьте, что переменная xPosition должна быть включена в каждое сравнение. 
Следующий код демонстрирует распространенную ошибку, когда пытаются  
проверить значение переменной xPosition дважды: 
// Ой! Забыли включить переменную xPosition в сравнение со значением 100 
if (xPosition < 0 || > 100) { 
// Этот блок кода выполняется, если значение переменной 
// xPosition находится в диапазоне от 1 до 100 включительно 




BACK NEXT

Сайт является частным собранием материалов и представляет собой любительский информационно-образовательный ресурс. Вся информация получена из открытых источников. Администрация не претендует на авторство использованных материалов. Все права принадлежат их правообладателям