Условные операторы if else. Часть 2
Четверг, 4 августа 2011 г.Рубрика: JavaScript -> Условия
Метки: else | if | javascript | операнды | условия
Просмотров: 476
Подписаться на комментарии по RSS
В прошлом уроке мы рассмотрели конструкцию if else.
А теперь представьте что Вам нужно проверить два условия - если сегодня хорошая погода и у нас есть машина, то едем на пляж.
Нам придётся писать так:
if ( pogoda == 'good' ) {
if ( car == 'yes' ) {
на пляж
}
}
Такая конструкция слишком громоская. Давайте попробуем её упростить:
if ( pogoda == 'good' && car == 'yes' ) {
на пляж
}
Как видите мы объединили два условия в одном при помощи оператора && - и.
То есть мы написали если хорошая погода и есть машина, то ...
При помощи такого оператора можно группировать множество условий, которые ведут к одному результату - в нашем случае на пляж.
Давайте сделаем побольше таких "и" в нашем условии.
Допустим мы хотим проверить заказ - сайт с использованием javascript, php, mysql, ajax.
Давайте создадим такое условие:
if ( php == 'yes' && javascript == 'yes' && mysql == 'yes' && ajax == 'yes' ) {
document.write ( "Создаём мощный сайт" );
}
А если нам нужно будет проверить условия, но чтобы хотя бы одно из них было правдой?
Например - мы хотим узнать - нужно ли на сайте использовать какие-то технологии. То есть хотим узнать не простой ли сайт создавать.
Мы бы написали так:
if ( php == 'yes' ) {
не простой сайт
} else {
if ( javascript == 'yes' ) {
не простой сайт
} else {
if ( ajax == 'yes' ) {
не простой сайт
} else {
простой сайт
}
}
}
Как видите все условия приведут к одному результату - не простой сайт - то есть их можно объединить в единое условие.
Давайте сократим этот код:
if ( php == 'yes' || ajax == 'yes' || javascript == 'yes' ) {
не простой сайт
} else {
простой сайт
}
Мы значительно упростили код.
Как видите мы добавили оператор || - "или".
То есть мы написали - если используем php или ajax или javascript, то ...
Мы можем объединять условия, если результат будет один и тот же.
В нашем случае мы проверяли - если хотя бы одна из приведённых технологий в создании сайта будет использоваться, то - это не простой сайт.
Здесь не надо было использовать условный оператор && ( и ), так как мы проверяли будет ли использоваться хотя бы одна из этих технологий.
Как в этом случае идёт проверка - если условие ложное, то переходим к следующему после ||, если условие истинное, то прекращаем проверять и выводим результат.
А в случае с условным оператором && ( и ) - javascript проверял - если условие истинно, то идём к следующему после && ( и ), если ложное, то прекращаем проверять и выводим результат в else.
Теперь давайте рассмотрим несколько вариантов сравнений:
1) Больше - в javascript записывается так - >
2) Меньше - в javascript записывается так - <
3) Больше или равно - в javascript записывается так - >=
4) Меньше или равно - в javascript записывается так - <=
5) Не равно - в javascript записывается так - !==
Давайте теперь закрепим полученные знания на практике.
Задание:
У нас есть массив с названиями языков веб-программирования, а именно - php, javascript, ajax.
У нас есть ещё один массив с временем выполнения работы, в нём хранится время для каждого из языков в первом массиве, то есть строго по порядку - для php, javascript и ajax. Время будет в днях.
Есть переменная с названием языка веб-программирования, который будет использоваться на сайте.
И переменная с временем на выполнение заказа.
Нам нужно проверить есть ли такой язык в нашем массиве, если есть то заносим его номер в массиве в переменную.
Дальше проверяем сможем ли мы выполнить заказ за отведённый срок, если да, то выводим сообщение заказ принят.
Иначе выводим сообщение - мы не успеем выполнить заказ.
Если нет языка в базе, то выводим - мы не умеем программировать на таком языке.
Вот решение, но сперва попробуйте решить эту задачу сами:
<html>
<head>
<title>JavaScript</title>
</head>
<body>
<script type = "text/javascript">
var ProgLang = ["php", "javascript", "ajax"];
var WorkTime = [20, 18, 26];
var OrderLang = "php", OrderTime = 19, NumLang;
if ( OrderLang == ProgLang[0] ) {
NumLang = 0;
} else {
if ( OrderLang == ProgLang[1] ) {
NumLang = 1;
} else {
if ( OrderLang == ProgLang[2] ) {
NumLang = 2;
} else {
document.write ( "Мы не умеем программировать на таком языке" );
}
}
}
if ( NumLang == 0 || NumLang == 1 || NumLang == 2 ) {
if ( OrderTime <= WorkTime[NumLang] ) {
document.write ( "Заказ принят" );
} else {
document.write ( "Мы не успеем выполнить заказ" );
}
}
</script>
</body>
</html>

