Код, который работает, если условие2 выполнено

}else{

код, который работает, если условие2 не выполнено}}

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

В случае строкового выражения условие считается выполненным, если его значением является непустая строка. Напомним, что пустая строка "" не содержит ни одного символа, в том числе и пробела (строка, содержащая хотя бы один пробел, не пуста).

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

Допустим, что переменная х содержит данные, которые ввел пользователь, и нам требуется проверить, что он действительно что-то ввел. В следующем примере мы проверяем, что значение переменной х не пусто (не 0, не пустая строка "" или NaN, не null и не undefined). Если х пусто, то выводится соответствующее сообщение:

if (!х) {// Если переменная username равна null, undefined, 0, "" или NaN, она

// преобразуется в false, и эта инструкция присвоит переменной новое

//значение.

alert('Bы ничего не ввели")

}

Заметим, что поскольку в этом примере блок кода содержит всего лишь одно выражение, фигурные скобки можно опустить, и всю конструкцию оператора условного перехода можно записать в одной строке:

if (!x) alert('Bы ничего не ввели")

Можно было то же самое записать иначе:

if (x == null) // Если переменная x равна null или undefined,

alert('Bы ничего не ввели")

x = "Вася"; // определяем ее

Как уже упоминалось, можно использовать сложные условия. Поэтому инструкция if может выглядеть так:

if ((address == null) || (address == "")) {

address = "undefined";

alert("Пожалуйста, укажите почтовый адрес.");

}

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

Многие программисты заключают тело инструкций if и else (а также других составных инструкций, таких как циклы while) в фигурные скобки, даже когда тело состоит только из одной инструкции. Последовательное применение этого правила поможет избежать многих ошибок и неприятностей.

Инструкция else if

Мы видели, что инструкция if/else используется для проверки условия и выполнения одного из двух фрагментов кода в зависимости от результата проверки. Но что если требуется выполнить один из многих фрагментов кода? Возможный способ сделать это состоит в применении инструкции else if. Формально это не JavaScript-инструкция, а лишь распространенный стиль программирования, состоящий в применении повторяющихся инструкций if/else:

if (n == 1) {

// Исполняем блок кода 1

}

else if (n == 2) {

// Исполняем блок кода 2

}

else if (n == 3) {

// Исполняем блок кода 3

}

else {

// Если все остальные условия else не выполняются, исполняем блок 4

}

В этом фрагменте нет ничего особенного. Это просто последовательность инструкций if, где каждая инструкция if является частью конструкции else предыдущей инструкции. Стиль else if предпочтительнее и понятнее записи в синтаксически эквивалентной форме, полностью показывающей вложенность инструкций:

if (n == 1) {

// Исполняем блок кода 1

}

else { if (n == 2) {

// Исполняем блок кода 2

}

else { if (n == 3) {

// Исполняем блок кода 3

}

else {

// Если все остальные условия else не выполняются, исполняем блок кода 4

}

}

}

Инструкция switch

Инструкция if создает ветвление в потоке исполнения программы. Сложное ветвление можно реализовать посредством нескольких инструкций if, как показано в предыдущем примере.

Однако это не всегда наилучшее решение, особенно если все ветви зависят от значения одной переменной. Инструкция switch работает именно в такой ситуации и делает это более эффективно, чем повторяющиеся инструкции if. За инструкцией switch следует выражение и блок кода – почти так же, как в инструкции if.

Различные места в блоке кода помечены ключевым словом case, за которым следует значение и символ двоеточия. Когда выполняется инструкция switch, она вычисляет значение выражения, а затем ищет метку case, соответствующую этому значению. Если метка найдена, исполняется блок кода, начиная с первой инструкции, следующей за меткой case. Если метка case с соответствующим значением не найдена, исполнение начинается с первой инструкции, следующей за специальной меткой default:. Если метки default: нет, блок кода пропускается целиком.

Следующая инструкция switch эквивалентна повторяющимся инструкциям if/else, показанным в предыдущем разделе:

switch(n) {

case 1: // Выполняется, если n == 1

// Исполняем блок кода 1.

break; // Здесь останавливаемся

case 2: // Выполняется, если n == 2

// Исполняем блок кода 2.

break; // Здесь останавливаемся

case 3: // Выполняется, если n == 3

// Исполняем блок кода 3.

break; // Здесь останавливаемся

default: // Если все остальное не подходит...

// Исполняем блок кода 4.

break; // Здесь останавливаемся

}

Обратите внимание на ключевое слово break в конце каждого блока case. Инструкция break приводит к передаче управления в конец инструкции switch или цикла. Конструкции case в инструкции switch задают только начальную точку исполняемого кода, но не задают никаких конечных точек. В случае отсутствия инструкций break инструкция switch начинает исполнение блока кода с метки case, соответствующей значению выражения, и продолжает исполнение до тех пор, пока не дойдет до конца блока, выполняя по очереди все оставшиеся ветви. В редких случаях это полезно для написания кода, который переходит от одной метки case к следующей, но в 99 % случаев следует аккуратно завершать каждый блок case инструкцией break.

switch (xlang) {

case "английский" : window. open ("engl .htm") ;

Break;

case "французский": window. open ("french. htm") ;

Break;

case "немецкий" : window. open ("german. htm") ;

Break;

default: alert("y нас нет документа на таком языке")

}

При использовании switch внутри функции можно помещать вместо break инструкцию return. Обе эти инструкции служат для завершения работы инструкции switch и предотвращения перехода к следующей метке case.

Ниже приводится более реальный пример использования инструкции switch; он преобразует значение в строку способом, зависящим от типа значения:

function convert(x) {

switch(typeof x) {

case 'number': // Преобразуем число в шестнадцатеричное целое








Дата добавления: 2016-01-09; просмотров: 799;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.019 сек.