Главная
Простейшие операторы
Операторы условия
Циклы
Массивы
Массивы II
Строки
Функции I
Функции II

Оператор условия if ... else

Если вы помните, существует такой тип переменной как boolean. Так вот операторы условия работают через него. Т.е. если некоторое выражение или переменная принимает значение true, то идет процесс выполнения определенного набора операторов. А если же false, то выполняется другой набор операторов (или не выполняется ничего). Следующая программа скажет спасибо пользователю только в том случае, если он введет ноль, иначе она будет ругаться:

<script>
var a=Number;
a=prompt("Введи НОЛЬ", "");
</script>

Обратите внимание на способ введения переменной: тип задается при введении, конечно, можно использовать и любой другой способ. Еще следует обратить внимание на фигурные и круглые скобки. Не забывайте об их открытии и закрытии.

Для получения булеановских выражений используются специальные операторы сравнения. Вот они:
== равно (5==5)
< меньше (-1<1)
> больше (1>-2)
<> не равно (1<>2)
>= больше или равно (10>5 5=5)
<= меньше или равно (5<10 10=10)

Все это хорошо, но, допустим нам надо проверить, чтобы пользователь ввел число четное и не больше 10. Для этого существуют такие связки:
!= логическое НЕ (1!=2)
&& логическое И (2>1 && 3>1)
|| логическое ИЛИ (2>1 || 0>1)
Во всех скобках получаются истинные выражения. А теперь сама программа:

<script>
a=prompt("","");
 if ((Number(a)<=10) && (Number(a) % 2 ==0))
alert("Число четное и небольше 10");}
else {alert("Число неверное");}
</script>

Запомните, как проверяется четность числа, а также, что если требуется проверить несколько условий, то каждое, помимо общих скобок, берется в свои, отдельные.

Упражнение 5
Создайте программу для вычисления корней квадратного уравнения через дискриминант. (D=b2–4ac; x1/2=(–b±√D)/2a, где a, b, c - коэффициенты в упорядоченном уравнении). При этом следует помнить, что если дискриминант отрицательный, то корней нет; если равен нулю, то корень один единственный (при вычислении корней квадратный корень из дискриминанта берется только с плюсом).

Оператор нескольких вариантов switch ... case ... default

Предыдущим оператором будет пользоваться очень неудобно, если у переменной надо проверить несколько возможных значений. switch для этого употребить гораздо проще. Наиболее популярная программой по этой теме является программа "Год, года или лет?". А программа сводится к следующему. У пользователя просят чтобы он ввел свой возраст (только в числах). А потом ему говорят: "Вам столько-то лет" (или год, или года). Алгоритм программы предельно прост. Если число оканчивается на 1, то говорят: "Вам _1 год". Если число оканчивается на 2, 3 или 4, то говорят: "Вам __ года". Если число оканчивается на 0, 5, 6, 7, 8, 9, то говорят: "Вам __ лет".

В программе это будет выглядеть так:

<script> a=prompt("Сколько вам лет?","(Ввести только число)");
b=Number(a) % 10;
switch (b) {
case 1: alert("Вам "+a+" год");break;
case 2: alert("Вам "+a+" года");break;
case 3: alert("Вам "+a+" года");break;
case 4: alert("Вам "+a+" года");break;
case 0: alert("Вам "+a+" лет");break;
case 5: alert("Вам "+a+" лет");break;
case 6: alert("Вам "+a+" лет");break;
case 7: alert("Вам "+a+" лет");break;
case 8: alert("Вам "+a+" лет");break;
case 9: alert("Вам "+a+" лет");break;
default: alert("Вам не может быть столько лет");break;
}
</script>

Остается только добавить, что операторы условия могут быть вложены друг в друга сколь угодно раз, лишь бы программист не запутался в фигурных скобках :). И еще: переменная, определяемая методом confirm(), также является булеановским выражением. (Если пользователь нажмет на ОК, то переменная получит значение 'true', если же на CANCEL, то - 'false'.) Например:

<script>
c=confirm("2+2=5?");
if (c) {alert("Гений")}
else {alert("Вам место в первом классе")}
</script>

Упражнение 6
Самое время сделать программу типа "О, счастливчика". Пусть это будет пока похоже лишь на тест. Программа, помимо выдачи правильного ответа, должна уметь ставить баллы и оценки.

[В начало]
Hosted by uCoz