Операторы условной передачи управления if-else(cond) и switch(x)

Название оператора if-else (cond) говорит о том, что в зависимости от выполнения некоторого условия ветвления (cond) реализуется либо один фрагмент программы, либо другой. В переводе с английского языка фраза if-else (cond) означает: ЕСЛИ - ИНАЧЕ. Другими словами: если указанное в скобках условие истинно, то выполняется оператор 1, иначе оператор 2. Если говорить точнее, то нужно сказать: в одном случае выполняется группа операторов 1, в другом случае - группа операторов 2. Вторую группу операторов порой называют альтернативой (альтернативной ветвью). Заметим, что условие ветвления может принимать только два булевых значения: true (Истина) и false (Ложь).

Схематично изобразим действие этого оператора.

ЕСЛИ (УСЛОВИЕ истинно), ТО выполнить {группу ОПЕРАТОРОВ 1}, ИНАЧЕ выполнить {группу ОПЕРАТОРОВ 2}.

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

Щелчок по командной кнопке приведет к появлению такого диалогового окна:

Запуск скрипта

В зависимости от сделанного выбора появится одно из двух сообщений:

Microsoft Internet Explorer

Microsoft Internet Explorer

Как нам повезло, что мы не женщины! Не надо утром краситься.

Как хорошо быть женщиной! Не надо утром бриться.

ОК

ОК

Ниже приведен код этого скрипта.

script language="JavaScript"

function Fif() {

var pol = сопАгт("Если Вы мужчина, то нажмите кнопку ОК. Если Вы женщина, то - кнопку Отмена");

if (pol=true)

{alertf'KaK нам повезло, что мы не женщины!");}

else

{alertf'KaK хорошо быть женщиной!");}

}

/script

Дадим краткие комментарии к данному сценарию.

Метод confirm() формирует значение true (Истина), если щелкнуть по кнопке "ОК". При щелчке по кнопке "Отмена" этот метод присваивает переменной pol значение false. Проверка истинности выражения здесь осуществляется с помощью выражения (pol= =true). Следует обратить особое внимание на наличие двух знаков равенства. Использование всего одного знака равенства при проверке истинности условия ветвления является типичной ошибкой при программировании.

Более сложная конструкция оператора условной передачи управления может включать несколько направлений ветвлений (русел ветвления). Схематично подобную конструкцию можно изобразить так.

ЕСЛИ (УСЛОВИЕ 1 истинно), ТО выполнить {группу ОПЕРАТОРОВ 1} ЕСЛИ (УСЛОВИЕ 2 истинно), ТО выполнить {группу ОПЕРАТОРОВ 2} ЕСЛИ (УСЛОВИЕ 3 истинно), ТО выполнить {группу ОПЕРАТОРОВ 3}

ИНАЧЕ выполнить {группу ОПЕРАТОРОВ п}.

Рассмотрим скрипт подобной конструкции.

В текстовое поле нужно ввести Ваш возраст и щелкнуть по кнопке "Запуск".

Запуск

В зависимости от введенного возраста будут появляться различные сообщения.

Листинг предыдущего скрипта приведен ниже.

script language="JavaScript"

function Fif2() {

var letl = document.Formif.Feldl.value;

var let=parselnt(letl);

if (isNaN(let)==true)

а1е!1("Нужно вводить числа, а не текст!");

else if (let<=0)

alertf'Bbi уверены? Вы - эмбрион?");

else if (let>0&&let<=7)

alert("ToHbKO в этом возрасте бывают настоящие друзья и верные подруги!");

else if (let>7&&let<=17)

а1ей("Школьныс годы чудесные! Хочется быстрее повзрослеть.");

else if (let>17&&let<=23)

{а1ег1("Нужно получить высшее образование! Найти вторую половину.");}

else if (let>23&&let<=50)

а1ег1("Работа.Работа! He забыть купить машину, дачу, съездить в Гондурас.");

else if (let>50&&let<=65)

а1еП("Опять хочется идти в детский сад, в школу... Совсем не хочется идти на работу, заниматься домашним хозяйством.");

else if (let>65&&let<=l 00)

alert("Tenepb можно отдохнуть. Посмотреть, как бессмысленно суетятся эти молодые люди.");

else if (let>100&&let<=150)

а1ет1("Для Вашего возраста Вы прекрасно управляетесь с вычислительной техникой! Поступайте в нашу академию на специальность Программирование.");

else

alertf'BaM приходилось встречаться со Львом Толстым?");

}

/script

Приведем комментарии к предыдущей программе.

В скрипте предусмотрена защита от ввода текста вместо чисел. Для этого с помощью метода isNaN() анализируется введенная информация. Если пользователем введена строковая переменная, то формируется сообщение "Нужно вводить числа, а не текст!". Преобразование строковой переменной в целочисленную осуществлено с помощью метода parselnt(). Скрипт формирует разные сообщения для лиц разного возраста. Заданный диапазон лет выделяется в условиях ветвления с помощью логической функции И (оператор &&). С помощью условия else if (let<=0) сделана защита от случайного ввода отрицательных чисел.

Рассмотрим еще одну конструкцию оператора условного ветвления -переключатель switch (х). Для его работы нужно вводить натуральные числа х = 1, 2, 3, ... и т.д. В зависимости от введенного числа, скрипт выполняет разные фрагменты кода.

Пример подобного скрипта приведен ниже.

Введите одно из трех чисел 1, 2 или 3.

Запуск

В зависимости от введенного числа появится одно из трех информационных окон.

Microsoft Internet Explorer

Первый период жизни человека - астрономический.

Возвышенные мечтыл интерес к звездам...

ОК

Microsoft Internet Explorer

Второй период жизни человека - семафорный. Все безралично...

ОК

Microsoft Internet Explorer

Третий период жизни человека - агрономический. Появляется естественный интерес к земле...

ОК

Код скрипта таков.

var kol= document. Formif2.Feld2. value;

var kol=parselnt(kol);

switch (koi) {

case 1: а1еП("Первый период жизни человека - астрономиче-скийАпВозвышенные мечты, интерес к звездам...");

break;

case 2: alertf'BTopoft период жизни человека - семафорный.пВсе без-ралично...");

break;

case 3: а!еП("Третий период жизни человека - агрономиче-скийАпПоявляется естественный интерес к земле...");

break;

default: alert("Введено число, отличное от 1, 2 и 3.");

}

Введите одно из трех чисел 1, 2 или 3.

Дадим небольшие пояснения к данному сценарию.

В зависимости от введенного числа выполняется одна из трех строк (команд). Например, при вводе цифры 2 выполняется команда:

case 2: а1еЛ("Второй период жизни человека - семафорныйАпВсе безразлично..."); break;

Если введено число, отличное от трех заданных, то выполняется строка:

default: alert("Введено число, отличающееся от 1, 2 и 3.");

Оператор break; предотвращает выполнение операторов, расположенных ниже выполненного оператора. Он завершает работу оператора-переключателя.

Рассмотрим скрипт, который позволяет производить вычисления функции в соответствии с заданными условиями. При этом аргумент х должен принимать значения: -4; -2; 0; 2; 4.

COS X При X < О

у = 5 77 при х = О

In х при х > О

Щелчки по командной кнопке «Вычислить» приведут к появлению информационных окон с результатами расчетов при различных значениях аргументов.

Приведем листинг данного сценария.

script language="JavaScript"

function Fif4()

{

var nac=-4;

var fin=5;

var res=O;

var x=l;

for(x=nac; x

if (x<0) res=(Math.round(Math.cos(x)*10000))/10000;

else if (x=0) res=77;

else res=(Math.round(Math.log(x)* 10000))/10000;

а1ег1("Результат: у = " + res + " для x = " +x);

}

}

/script

Дадим краткие комментарии к данному скрипту.

При выводе результатов расчета использовано округление чисел до четвертого знака после запятой. Для этого использован метод Math.round() и константа, равная 10000 (она определяет число знаков, выводимых после запятой).

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >