>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, и выводится «Нормально». Если нет – значит, выполняется последняя ветка.
Последовательность выполнения примерно такая: