Лабораторная работа № 2
Условные операторы языка JavaScript
В JavaScript условие осуществляет оператор if
Рассмотрим синтаксис условного оператора:
if (условие) { // если истина operator1; operator2; } else { // если ложь operator3; operator4; } |
В качестве условия может использоваться логическое выражение или переменная.
Важно: Блок операторов заключенный в {} — это составной оператор, объединяющий несколько операторов в конструкции. Скобки можно опустить, если внутри конструкции только один оператор.
Часть конструкции после служебного слова else — необязательна.
В условии используются следующие операции отношений:
< | Меньше |
> | Больше |
<= | Меньше либо равно |
>= | В javascript больше или равно |
== | Равно (сравнение) |
!= | в javascript не равно |
=== | Сравнение с учетом типа (идентичность) |
Важно: Идентичность (===) требует совпадения типа и значения переменной, тогда как для равенства (==) достаточно только совпадающих значений
1. если значения имеют разные типы, то они не идентичны
2. если значения являются числами, имеют одинаковые значения и не являются значениями NaN — они идентичны.
Для оператора равенства стоит использовать символ «==»
//num1 == num2
Для оператора идентичности стоит использовать «===»
//num1 === num2
Рассмотрим простой пример с использованием оператора языка JavaScript if:
Пример: выводить в модальное окно «а больше 1», если переменная a>1, иначе выводить «а не больше 1»
var a=1; if (a>1) alert("а больше 1") else alert("а не больше 1"); |
Теперь рассмотрим используемые в javascript логические операторы для построения сложных (например, двойных) условий:
! | в javascript отрицание НЕ | if (!x) |
&& | в javascript И | if (x>1) && (x<5) |
|| | в javascript ИЛИ | if (x>1) || (y>1) |
Задание 1. Написать программу, которая по паролю определяет уровень доступа сотрудника к секретной информации в базе данных.
|
Доступ к базе данных имеют сотрудники, разбитые на три группы по уровням доступа. Они имеют следующие пароли:
9583, 1747 – доступны модули баз А, В и С;
3331, 7922 - доступны модули баз В и С;
9455, 8997 – доступен модуль базы С.
Выводить доступные модули на запрос.
Задание 2. Найдите ошибки в следующем фрагменте кода:
var a = prompt("Введите число 11", "0"); if (a = 11) document.write("Введенное значение верно."); } |
В большинстве языков программирования также как и в javascript используется так называемое "правило лжи". Рассмотрим пример:
var a=1; if (a) alert(a); |
По правилу лжи:
ЛОЖНО:
· Null значения
· Undefined
· NaN
· 0
· Пустая строка ("")
· False
Пример со строковой переменной:
var s=""; if (s) alert("строка не пуста"); else alert("строка пуста"); |
Задание 3. Запрашивать у пользователя имя (метод javascript prompt). Если имя введено, то выводить "Привет, имя!". Если пользователь не ввел имя или щелкнул cancel(значение null) выводить "Привет, незнакомец!"
Тернарный оператор javaScript
Важно: Тернарный оператор языка javascript - это сокращенная форма конструкции if... else. Данный оператор включает в себя три операнда:
(условие? Если условие ИСТИННО: Если условие ЛОЖНО)
Т.е. синтаксис:
(логическое выражение)? выражение 1: выражение 2 |
Рассмотрим синтаксис тернарного оператора на примере:
Пример: Переменной b присваивать значение 100 в случае истинности условия a>1 и присваивать 200 в случае ложного условия
|
Решение:
var a = 10; var b = (a>1)? 100: 200;alert(b);
Т.е. в случае истинности условия, выполняется то, что стоит до знака:, в случае ложности условия - выполняется то, что стоит после знака:.
Задание 4. Дописать код: объявлено 3 локальные переменные с использованием ключевого слова var. Нужно в переменную max присвоить значение следующего тернарного оператора: если a больше b, то возвращаем a, иначе возвращаем b.
var a = 1, b = 2, max = 0; ... document.write(max); |
Задание 5. Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию или убыванию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C.
Задание 6. Поезд прибывает на станцию в НН часов ММ минут, стоянка поезда Мs минут. Пассажир пришел на станцию в Нр часов, Мр минут. Будет ли поезд стоять в это время на платформе, или пассажир опоздал на поезд или, он пришел до прибытия поезда? Вывести соответствующее сообщение.
Задание 7. Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в течении трех минут горит зеленый сигнал, затем в течении двух минут – красный, в течение трех минут – опять зеленый и т.д. Дано вещественное число t, обозначающее время в минутах, прошедшее с начала очередного часа. Определить, сигнал какого цвета горит для пешеходов в этот момент.