НЕЧЕСТНЫЕ ПРИЕМЧИКИ выражения сравнения

 

Честно говоря мне порядком поднадоело писать скрипты не так, как я пишу обычно. Поэтому сейчас рассмотрим некоторые часто используемые выражения, упрощения и т.п. а также попробуем разобраться что такое функции. Итак, создадим новый файл и в первом кадре пропишем:

 

a= 1==1; // присваиваем переменной a результат выражениЯ 1==1

trace (a);// выводим присвоенное значение в окно Output

b= 1>1;// присваиваем переменной b результат выражениЯ 1>1

trace (b);// выводим присвоенное значение в окно Output

if ( a or b ) { // если хотЯ бы одна переменнаЯ возвращает true то

trace ("a or b is true"); // выводим строку сообщениЯ в окно Output

}

if (a and b) { // если обе переменные возвращают true, то

trace ("a and b is true"); // выводим строку сообщениЯ в окно Output

} else { // иначе, то есть если хотЯ бы одна переменнаЯ возвращает false, то

trace ("a or b or a and b is false"); // выводим строку сообщениЯ в окно Output

}

 

Output:

true

false

a or b is true

a or b or a and b is false

Всё просто. Как обычно.Только одна строка не показалась в окне Output - a and b is true, что тоже вполне понятно. Что произошло и как это используется? Выражение 1==1 и 1>1 это выражения сравнения. Такие выражения возвращают true или false. Далее результат выражения сравнения 1==1 присваивается переменной a, то есть a = true. То-же с b, но только 1>1 это неправда и поэтому b становится равным false. Итак присваивание результата выражения сравнения переменной служит в некоторых случаях для упрощения вычисления кода а иногда для удобочитаемости и удобописаемости :)). Например, если одно и то же выражение используется в нескольких местах:

if (1==1 and 1>1) {

} else if (1==1) {

} else if (1>1) {

}

выражение будет выполнено быстрее, если рассчитать выражения сравнения заранее:

a = 1 == 1;

b = 1>1;

if (a and b) {

} else if (a) {

} else if (b) {

}

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

 

Hosted by uCoz