Дисциплина:
МДК 02.01 Разработка, внедрение и адаптация ПО отраслевой направленности.
Раздел 3. Программирование динамического контента языками сценариев
Группа:
ПИ-41 (прикладная информатика в дизайне)
Дата:
23.09.2015
Общее
количество студентов: 10
Присутствовало:
Тема:
Логические операторы
Цель:
Познакомить учащихся с логическими операторами, используемыми языком сценария JavaScript
Задачи:
Обучающие:
·
Определение операторов
·
Виды операторов
·
Применение логических операторов
на практике
Развивающие:
· Развивать технические способности студентов;
· Активировать мыслительную деятельность студентов;
Воспитательные:
· Воспитание информационной культуры студентов, внимательности,
аккуратности; дисциплинированности, усидчивости.
Тип урока:
комбинированный
Формы
работы:
фронтальная, коллективная.
Техническо-материальная база:
1.
Интерактивная
доска (проецирующий экран);
2.
Проектор;
3.
Компьютер,
входящий в локальную сеть с выходом в интернет;
4.
Магнитно-маркерная
доска.
Ход
урока.
- Организационный
момент:
-предварительная организация
группы (проверка отсутствующих, организация внимания).
2. Актуализация знаний учащихся:
- объявление темы и цели урока.
3.
Работа с теоритическим
материалом(35 минут)
Логические операторы
Для операций над логическими значениями в
JavaScript есть ||
(ИЛИ), &&
(И) и !
(НЕ).
Хоть они и называются «логическими», но в
JavaScript могут применяться к значениям любого типа и возвращают также
значения любого типа.
Оператор ИЛИ выглядит как двойной символ
вертикальной черты:
result
= a
|| b
;
Логическое ИЛИ в классическом программировании
работает следующим образом: «если хотя
бы один из аргументов true
, то возвращает true
, иначе — false
». В JavaScript, как мы
увидим далее, это не совсем так, но для начала рассмотрим только логические
значения.
Получается следующая «таблица результатов»:
alert(
true
||
true
);
// true
alert(
false
||
true
);
// true
alert(
true
||
false
);
// true
alert(
false
||
false
);
// false
Если значение не логического типа — то оно к нему
приводится в целях вычислений. Например, число 1
будет воспринято как true
, а 0
— как false
:
JavaScript вычисляет несколько ИЛИ слева направо.
При этом, чтобы экономить ресурсы, используется так называемый «короткий цикл вычисления».
Допустим, вычисляются несколько ИЛИ подряд: a || b || c || ...
. Если
первый аргумент — true
,
то результат заведомо будет true
(хотя бы одно из значений — true
), и остальные значения
игнорируются.
Это особенно заметно, когда выражение, переданное в
качестве второго аргумента, имеет сторонний
эффект— например, присваивает переменную.
При запуске примера ниже присвоение x
не произойдёт:
var x
;
true
||
(x
=
1);
alert(x
);
// undefined, x не присвоен
…А в примере ниже первый аргумент — false
, так что ИЛИ попытается
вычислить второй, запустив тем самым присваивание:
var x
;
false
||
(x
=
1);
alert(x
);
// 1
||
запинается на «правде», &&
запинается на «лжи».
Итак, как мы видим, оператор ИЛИ вычисляет ровно
столько значений, сколько необходимо — до первого true
.
При этом оператор ИЛИ возвращает то значение, на
котором остановились вычисления. Причём, не преобразованное к логическому типу.
Например:
alert(
1
||
0
);
// 1
alert(
true
||
'неважно что'
);
// true
alert(
null
||
1
);
// 1
alert( undefined
||
0
);
// 0
Это используют, в частности, чтобы выбрать первое
«истинное» значение из списка:
var undef
;
// переменная не присвоена, т.е. равна undefined
var zero
=
0;
var emptyStr
=
"";
var msg
=
"Привет!";
var result
= undef
|| zero
|| emptyStr
|| msg
||
0;
alert( result
);
// выведет "Привет!" - первое значение, которое является true
Если все значения «ложные», то ||
возвратит последнее из них:
alert( undefined
||
''
||
false
||
0
);
// 0
Итак, оператор ||
вычисляет операнды слева направо до
первого «истинного» и возвращает его, а если все ложные — то последнее
значение.
Иначе можно сказать, что «||
запинается на правде».
Оператор И пишется как два амперсанда &&
:
result
= a
&& b
;
В классическом программировании И возвращает true
, если оба аргумента
истинны, а иначе — false
:
alert(
true
&&
true
);
// true
alert(
false
&&
true
);
// false
alert(
true
&&
false
);
// false
alert(
false
&&
false
);
// false
К И применим тот же принцип «короткого цикла
вычислений», но немного по-другому, чем к ИЛИ.
Если левый аргумент — false
, оператор И возвращает
его и заканчивает вычисления. Иначе — вычисляет и возвращает правый аргумент.
Например:
// Первый аргумент - true,
// Поэтому возвращается второй аргумент
alert(
1
&&
0
);
// 0
alert(
1
&&
5
);
// 5
// Первый аргумент - false,
// Он и возвращается, а второй аргумент игнорируется
alert(
null
&&
5
);
// null
alert(
0
&&
"не важно"
);
// 0
Можно передать и несколько значений подряд, при
этом возвратится первое «ложное» (на котором остановились вычисления), а если
его нет — то последнее:
alert(
1
&&
2
&&
null
&&
3
);
// null
alert(
1
&&
2
&&
3
);
// 3
Итак, оператор &&
вычисляет операнды слева направо до
первого «ложного» и возвращает его, а если все истинные — то последнее
значение.
Иначе можно сказать, что «&&
запинается на лжи».
Приоритет у &&
больше, чем у ||
Приоритет оператора И &&
больше, чем ИЛИ ||
, так что он выполняется
раньше.
Поэтому в следующем коде сначала будет вычислено
правое И: 1 && 0 = 0
,
а уже потом — ИЛИ.
alert(
5
||
1
&&
0
);
// 5
! (НЕ)
Оператор НЕ — самый простой. Он получает один
аргумент. Синтаксис:
var result
=
!value
;
Действия !
:
1.
Сначала приводит аргумент к
логическому типу true/false
.
2.
Затем возвращает
противоположное значение.
Например:
alert(
!true
);
// false
alert(
!0
);
// true
В частности, двойное НЕ
используют для преобразования значений к логическому типу:
alert(
!!"строка"
);
// true
alert(
!!null
);
// false
4. Практическое
занятие (30 минут)
Что выведет код ниже?
alert(
null
||
2
|| undefined
);
Что выведет код ниже?
alert(
alert(1)
||
2
||
alert(3)
);
Что выведет код ниже?
alert(
1
&&
null
&&
2
);
Что выведет код ниже?
alert(
alert(1)
&&
alert(2)
);
Что выведет код ниже?
alert(
null
||
2
&&
3
||
4
);
Напишите
выражение, истинное тогда и только тогда, когда:
- Значение целой переменной m
делится нацело на значение целой переменной k;
- Значения вещественных переменных A,
B
и C
образуют неубывающую последовательность;
- Значение переменной x
является наибольшим из трех попарно различных значений x,
y,
z.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.