Выразительный JavaScript (Хавербеке) - страница 16

>var theNumber = Number(prompt("Выбери число", ""));

>alert("Твоё число – квадратный корень из " + theNumber * theNumber);

Функция >Number преобразовывает величину в число. Нам это нужно, потому что >prompt возвращает строку. Есть сходные функции >String и >Boolean, преобразующие величины в соответствующие типы.

Простая схема прямого порядка исполнения программы:


Условное выполнение

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



Условное выполнение записывается при помощи ключевого слова >if. В простом случае нам нужно, чтобы некий код был выполнен, только если выполняется некое условие. К примеру, в предыдущей программе мы можем считать квадрат, только если было введено именно число.

>var theNumber = prompt("Выбери число ", "");

>if (!isNaN(theNumber))

>  alert("Твоё число – квадратный корень из " +  theNumber * theNumber);

Теперь, введя «сыр», вы не получите вывод.

Ключевое слово >if выполняет или пропускает инструкцию, в зависимости от значения булевого выражения. Это выражение записывается после >if в скобках, и за ним идёт нужная инструкция.

Функция >isNaN – стандартная функция JavaScript, которая возвращает >true, только если её аргумент – >NaN (не число). Функция >Number возвращает >NaN, если задать ей строку, которая не представляет собой допустимое число. В результате, условие звучит так: «выполнить, если только >theNumber не является не-числом».

Часто нужно написать код не только для случая, когда выражение истинно, но и для случая, когда оно ложно. Путь с вариантами – это вторая стрелочка диаграммы. Ключевое слово >else используется вместе с >if для создания двух раздельных путей выполнения.

>var theNumber = Number(prompt("Выбери число", ""));

>if (!isNaN(theNumber))

>  alert("Твоё число – квадратный корень из " + theNumber * theNumber);

>else

>  alert("Ну ты что число-то не ввёл?");

Если вам нужно больше разных путей, можно использовать несколько пар if/else по цепочке.

>var num = Number(prompt("Выбери число", "0"));


>if (num < 10)

>  alert("Маловато");

>else if (num < 100)

>  alert("Нормально");

>else

>  alert("Многовато");

Программа проверяет, действительно ли >num меньше 10. Если да – выбирает эту ветку, и показывает «Маловато». Если нет, выбирает другую – на которой ещё один >if. Если следующее условие выполняется, значит номер будет между 10 и 100, и выводится «Нормально». Если нет – значит, выполняется последняя ветка.

Последовательность выполнения примерно такая: