Тестирование и стравнение значений

Оператор if

Одно из основных преимуществ всех языков программирования - это возможность проверки и сравнения значений. Это позволяет программисту задавать разные сценарии поведения программы в зависимости от введенных пользователем данных.

Оператор if чаще других используется в JavaScript для сравнения данных. Этот оператор используется практически во всех известных языках программирования. Его конструкция позаимствована из грамматики английского языка. Например, давайте рассмотрим простое английское предложение.

if phone rings, answer it. (Если телефон зазвонит, поднимите трубку.)

Это предложение состоит из двух частей: условия if the phone rings (Если телефон зазвонит) и действия answer it (поднимите трубку). Оператор if в JavaScript используется подобным образом. Вот пример стандартного оператора с командой if:

if (a==1) window.alert("1 найдено!");

В этом операторе вначале также задается условие (если a равно единице), а затем действие (отобразить сообщение). При выполнении оператора проверяется значение переменной. Если оно равно единице, то печатается указанное сообщение. В противном случае сообщение не выводится.

В предыдущем примере в случае правильности условия выполняется только одно действие. При необходимости можно также при выполнении условия задавать несколько операторов, заключив их в фигурные скобки {}. Это и продемонстрировано в листинге 12.1.

Листинг 12.1. Оператор if, используемый с несколькими операторами действия


1:    if (a==1) {
2:         window.alert("1 найдено!");
3:         a = 0;
4:    }
                   

Этот блок операторов также проводит проверку значения переменной a. Если оно равно 1, то отображается сообщение и переменной a определяется значение 0.

Условные операторы

В скобках указываются условные выражения. Выражения условия содержат два сравниваемых значения (в предыдущем примере это переменная a и число 1). В качестве значения может выступать переменная, константа или целое выражение.

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

  • == (равно)
  • != (не равно)
  • < (меньше)
  • > (больше)
  • <= (меньше или равно)
  • >= (больше или равно)

Будьте внимательны и не путайте оператор сравнения (==) с оператором определения значения (=). Хотя оба оператора обозначены символом равенства, первый используется для сравнения двух значений, а второй - для определения значения переменной. Это одна из самых распространенных ошибок при программировании на JavaScript.

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

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

В приведенном ниже примере проверяются разные условия и выполняется одно и то же действие:

if (phone == " ") window.alert("Ошибка!");
if (email == " ") window.alert("Ошибка!");

С помощью логического оператора эти два оператора объединяются в один:

if (phone == " " || email == " ") window.alert("Ошибка!");

В этом выражении использован логический оператор ИЛИ (||). На обычном языке это выражение можно определить как: "Если телефонный номер или адрес электронной почты содержит пробел, то на экране отображается сообщение обо ошибке".

Еще один логический оператор, с которым вы будете часто сталкиваться - это оператор И (&&). Например:

if (phone == " " && email == " ") window.alert("Ошибка!");

В этом выражении вместо оператора || использован оператор &&. В этом случае сообщение об ошибке будет отображаться на экране только в том случае, если выполняются оба условия (т.е. и телефонный номер, и адрес электронной почты содержит пробелы). По правде говоря, оператор ИЛИ использовать в данном случае предпочтительнее.

В случае использования оператора && сначала проверяется первое условие. Если оно не выполняется, то второе условие проверяться не будет. В этом нет надобности. Используйте эту особенность логических операторов для повышения производительности.

Третий логический оператор, с которым не помешает познакомиться, - это оператор НЕ (!). Он используется для инвертирования выражения, другими словами, в случае невыполняемости условия будут выполняться указанные операторы действия. Ниже приведен пример оператора НЕ:

if (phone != " ") window.alert("Правильно!");

В этом случае оператор ! используется как часть оператора сравнения (!=). Этот оператор инвертирует условие. Поэтому, если телефонный номер не содержит пробела, то выводится сообщение о правильности его введения.

Логические операторы используются очень часто. Именно поэтому так просто сделать в них ошибку и неправильно задать условие. Например, условие a < 10 && a > 20 на первый взгляд правильное. Но если вы его проанализируете, то получите следующее: "если a меньше 10 и больше 20". Одновременно оба эти условия выполняться не могут. Поэтому необходимо вместо оператора && использовать оператор ||.

Оператор else

Дополнительный оператор, используемый вместе с оператором if, - это оператор else. Как и в обычном языке (else в переводе с английского означает иначе), этот оператор определяет действия, которые выполняются в случае невыполнения условия. В листинге 12.2 приведен пример использования оператора else.

Листинг 12.2. Пример использования операторов if и else


1:    if (a==1) {
2:         window.alert("1 найдено!");
3:         a = 0;
4:    }
5:    else window.alert("Неправильное значение: " + a);
                   

Если условие выполняется отображается сообщение и переменной a назначается новое значение 0. Если же условие не выполняется (если a не равно 1), то отображается другое сообщение. Если в операторе else используется несколько операторов, то необходимо заключать их в фигурные скобки.

nextn.bmp (246 bytes)

home.gif (161 bytes)

next.gif (900 bytes)

Сайт управляется системой uCoz