Оператор if обычно является логическим выражением. Но это может быть строковое и числовое выражение. В случае строкового выражения условие считается выполненным, если его значением является не пустая строка. Пустая строка "" не содержащая ни одного символа, в том числе и пробела. Строка содержащая пробел не пуста. В случае числового выражения условие считается выполненным, если его значением является число, отличное от нуля.
Допустим, что переменная a содержит данные, которые ввел пользователь, и нам требуется проверить, что он действительно что-то ввел.
В следующем примере мы проверяем, что значение переменной a не пусто(не 0, не пустая строка"" и не nyll). Если а пусто , то выводится соответствующее сообщение.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script language="JavaScript">
var a=""
if(!a) {
alert("Вы ничего не ввели")
}
</script>
</head>
<body >
</body>
</html>
Скрипт можно записать и так.
<script language="JavaScript">
a=""
if(!a) alert("Вы ничего не ввели")
</script>
Поскольку в этом примере блок кода содержит лишь одно выражение скобки можно опустить.
В окне веб-браузера это будет выглядеть ТАК.
Оператор if испоьзуется для проверки большого количества условий. Однако в случае нескольких условий более удобным инаглядным оказывается оператор switch(переключатель). Он особенно удобен, если требуется проверить несколько условий, которые не являются взаимоисключающими.
Синтаксис оператора switch выглядит следующим образом:
switch (выражение) {
case вариант 1:
код
[break]
case вариант 2:
код
[break]
...
[default :
код]
}
Параметр выражение оператора switch может принять строковые, числовые и логические значения. В случае логического выражения возможны два варианта. Ключевые слова (операторы) break и default не являются обязательными, что отражено прямоугольными скобками. Здесь они являются элементами описания синтаксиса, и при написании операторов их указывать не нужно. Если оператор break указан, то проверка остальных условий не производится. Если указан оператор default, то следующий за ним код выполняется, если значение выражения (выражение) не соответствует ни одному из вариантов. Если все варианты возможных значений предусмотрены в операторе switch, то оператор default можно не использовать.
Оператор switch работает следующим образом. Сначала вычисляется выражение, указанное в круглых скобках сразу за ключевым словом switch. Полученное значение сравнивается с тем, которое указано в первом варианте. Если они не совпадают, то код этого варианта не выполняется и происходит переход к следующему варианту. Если значения совпали, то выполняется код, соответствующий этому варианту. При этом, если не указан опратор break, то выполняются коды остальных вариантов, пока не встретится оператор break. Это правило действует для всех вариантов.
Рассмотрим пример.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script language="JavaScript">
x=2
switch (x) {
case 1:
alert(1)
case 2:
alert(2)
case 3:
alert(3)
}
</script>
</head>
<body>
</body>
</html>
В окне веб-браузера это будет выглядеть ТАК.
В приведенном примере сработали 2-й и 3-й варианты. Если мы хотим, чтобы сработал один какой-нибудь вариант(только тот, который соответствует значению выражения), то нужно использовать оператор break.
Рассмотрим пример.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script language="JavaScript">
x=2
switch (x) {
case 1:
alert(1)
break
case 2:
alert(2)
break
case 3:
alert(3)
break
}
</script>
</head>
<body>
</body>
</html>
В этом примере сработал 2-й вариант.
В окне веб-браузера это будет выглядеть ТАК.
Еще пример. Есть переменная содержащая название языка.Пользователь выбрал язык и ввел его в поле диалогового окна.
Пишем скрипт.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script language="JavaScript">
alert("На каком языке предпочитаете изучать произведения Шекспира?")
aLang=prompt("Введите язык", "");
switch (aLang) {
case "английский":
alert("Мы дадим вам всю литературу.")
break
case "французский":
alert("А вы могли бы перейти на английский")
break
case "немецкий":
alert("А вы могли бы перейти на английский")
break
default:
alert("У нас нет литературы на этом языке")
}
</script>
</head>
<body>
</body>
</html>
В окне веб-браузера это будет выглядеть ТАК.
А теперь давайте решим ту же задачу с помощью операторов if и else.
Пишем скрипт.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script language="JavaScript">
alert("На каком языке предпочитаете изучать произведения Шекспира?")
aLang=prompt("Введите язык", "");
if(aLang=="английский")
alert("Мы дадим вам всю литературу.")
else{
if(aLang=="французский")
alert("А вы могли бы перейти на английский");
else{
if(aLang=="немецкий")
alert("А вы могли бы перейти на английский");
else{
alert("У нас нет литературы на этом языке")
}
}
}
</script>
</head>
<body>
</body>
</html>
Мы увидем тот же эффект. При открытии страницы диалоговое окно:
Дальше диалоговое окно с полем ввода:
и ответ пользователю:
В окне веб-браузера это будет выглядеть ТАК.
Оператор условия является сокращенной формой оператора условного перехода if ... else ... . Его так и называют: оператор условия. Обычно он применяется вместе с оператором присваивания одного из двух возможных значений, в зависимости от значения условного выражения. Синтаксис оператора условия:
условие ? выражение 1 : выражение 2
С оператором присваивания оператор условия имеет вид:
переменная = условие ? выражение 1 : выражение 2
Оператор условия возвращает значение выражения выражение 1, если условие истинно, в противном случае – значение выражения выражение 2. Поэтому он может использоваться в составных выражениях.
Рассмотрим пример.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script language="JavaScript">
d=new Date(); //текущая дата
a=d.getDate();
typedate=(a%2==0)&&(a>1) ? "четное" : "нечетное";
document.write("Сегодня "+typedate+" число");
</script>
</head>
<body >
</body>
</html>
Для получения числа текущей даты использовался объект Date и его метод getDate(). Переменная typedate, в которой содержится условие (a%2= =0)&&(a>1) ? и два значения "четное" : "нечетное", выбирает одно из двух значений соответствующее числу месяца..
В окне веб-браузера это будет выглядеть ТАК.