Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JavaScript_основы.doc
Скачиваний:
8
Добавлен:
04.11.2018
Размер:
322.05 Кб
Скачать

3.12. Условные операторы. Выполнение блоков кода только при соответствии условию

Условные операторы позволяют в зависимости от значения логического выражения выполнить отдельный участок программы или наоборот не выполнять его. Логические выражения возвращают только два значения: true (истина) ИЛИ false (ЛОЖЬ).

3.12.1. Операторы сравнения

Операторы сравнения используются в логических выражениях. Перечислим их:

== — равно;

=== — строго равно;

!= — неравно;

!== — строго не равно;

< — меньше;

— больше;

<= — меньше или равно;

>= — больше или равно.

В чем отличие оператора == (равно) от оператора === (строго равно)? Дела все в том, что если используется оператор ==, интерпретатор пытается преобразовать разные типы данных к одному и лишь затем сравнивает их. Оператор ===, встретив данные разных типов, сразу возвращает false (ложь).

Кроме того, значение логического выражения можно инвертировать с помощью оператора ! таким образом:

!(m_Var1 == m_Var2)

Если переменные m_Var1 и m_Var2 равны, то возвращается значение true, но так как перед выражением стоит оператор !, выражение вернет false.

Несколько логических выражений можно объединить в одно большое с помощью следующих операторов:

& & — логическое И;

|| — логическое ИЛИ.

(m_Var1 == m_Var2) && (m_Var2 != m_Var3) (m_Var1 == m_Var2) || (m_Var3 == m_Var4)

Первое выражение возвращает true только в случае, если оба выражения вернут true, а второе — если хотя бы одно из выражений вернет true.

3.12.2. Оператор ветвления if...Else. Проверка ввода пользователя

Оператор ветвления мы уже использовали ранее в наших примерах, например, чтобы проверить, какая из кнопок диалогового окна нажата. Так как при нажатии кнопки ОК возвращается значение true, то можно узнать, какая кнопка нажата, используя оператор ветвления if…else (листинг 3.17).

Листинг 3.17. Проверяем какая из кнопок диалогового окна нажата

<HTML>

<HEAD>

<TITLE>Окно с сообщением</TITLE>

</HEAD>

<BODY>

<SCRIPT language="JavaScript">

<!--

if (window.confirm("Hello, world")) {

window.alert("Нажата кнопка OK");

}

else {

window.alert("Нажата кнопка Cancel");

}

//-->

</SCRIPT>

</BODY>

</HTML>

Обратите внимание, что логическое выражение не содержит операторов сравнения:

if (window.confirm("Hello world"))

Такая запись эквивалентна записи

if (window.confirm("Hello, world") == true)

Проверка на равенство выражения значению true (истина) выполняется по умолчанию.

Оператор ветвления if...else имеет следующий формат:

if (<Логическое выражение>) {

<Блок, выполняемый, если условие истинно>

}

[else {

<Блок, выполняемый, если условие ложно>

}] ; -

Для примера напишем программу (листинг 3.18), которая проверяет, является ли введенное пользователем число четным или нет. После проверки выводится соответствующее сообщение.

Листинг 3.18. Проверка числа на четность

<HTML>

<HEAD>

<TITLE>Проверка числа на четность</TITLE>

</HEAD>

<BODY>

<SCRIPT language="JavaScript">

<!--

var m_Var1;

m_Var1=window.prompt("Введите число", "");

if (m_Var1==null) {

document.write("Вы нажали Отмена");

}

else {

if ((parseInt(m_Var1))%2==0) {

document.write("Четное число");

}

else {

document.write("Нечетное число");

}

}

//-->

</SCRIPT>

</BODY>

</HTML>

Как видно из примера, один условный оператор можно вложить в другой. Кроме того, если блок состоит из одного выражения, фигурные скобки можно не указывать:

if ((parselnt(m_Varl))%2==0) document.write("Четное число"); else document.write("Нечетное число");

Более того, блока else может не быть совсем:

if ( (parselnt (m__Var1) ) %2==0) document.write ("Четное число");

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]