JavaScript - Операторы if и switch

Условные операторы предназначены для выполнения или невыполнения определённых инструкций в зависимости от заданного условия.

На языке JavaScript есть 2 основных вида условных операторов: условный оператор ветвления if и оператор выбора из множества вариантов switch.

Условный оператор if состоит из:

  • ключевого слова if;
  • условия (выражение логического типа), заключенного в круглые скобки;
  • инструкции, которая выполняется только в том случае, если условие является истинным или может быть приведено к истине.
Например: Выведем на экран диалоговое окно с сообщением "Отлично", если ученик получил отметку 5. Для этого объявим переменную mark и присвоим ей значение равное 5. Далее перейдём к создании конструкции ветвления: напишем условный оператор if, в круглых скобках создадим условие (mark == 5 - "Оценка равна 5 ?" ) и инструкцию (alert("Отлично!")), которая будет выполняться только в том случае, если условие будет истинным (т.е. когда переменная mark будет равна 5).

Оператор if

Если нам необходимо выполнить несколько инструкций, то их необходимо поместить в фигурные скобки:

Оператор if, содержащий несколько инструкций

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

Конструкция if-else

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

  • false ("Ложь")
  • "" (Пустая строка)
  • NaN (Специальный числовой тип данных)
  • 0 (Число)
  • null (Отсутствие значения)
  • undefined (Неопределённый тип данных)
<script>
var name="";
if (name) 
  alert("Имя пользователя: "+name);
else
  alert("Анонимный пользователь");
</script>

В вышеприведенном примере интерпретатор языка JavaScript должен привести условие name к истине или лжи. Чтобы это сделать он должен воспользоваться "правилом лжи". Так как выражение name- эта пустая строка, то оно в соответствии с правилом является ложью. Следовательно, на экран в результате выполнения этого скрипта будет выведено диалоговое окно с сообщением "Анонимный пользователь".

При написании условий можно использовать следующие операторы:

  • == (равенство)
  • === (равенство с учётом типа данных)
  • != (не равно)
  • > (больше)
  • < (меньше)
  • >= (больше или равно)
  • <= (меньше или равно)
  • && (Логическое "И" - выражение является истинным, только тогда, когда каждый из операндов является истинным)
  • || (Логическое "ИЛИ" - выражение является истинным, когда хотя бы один из операндов является истинным)
  • ! (Логическое "НЕ" - выражение считается истинным, когда операнд является ложным)
<script>
//Оценка Антона
var markAnton=5;
//Оценка Максима
var markMaxim=4;

if ((markAnton>=3) && (markMaxim>=3)
  alert("Антон и максим имеют положительные отметки");
</script>
<script>
//Оценка Максима
var markMaxim="4";

if (markAnton===4)
  alert("Максим получил отметку 4");
</script>

В вышеприведенном примере мы сравниваем строку "4" с цифрой 4 с помощью равенства с учетом типа (===), т.к. тип данных сравниваемых операндов не совпадает, то результатом данного выражения будет ложь. Если бы в примере мы использовали обычное равенство (==), то получили бы в результате выполнения выражения истину, т.к. в этом случае JavaScript приведёт сравниваемые операнды выражения к одному типу (т.е. к строке), а потом их сравнит ("4" == "4").

Интересной способностью языка JavaScript, является то, что он позволяет сравнивать строки с помощью операторов больше или меньше. В этом случае он сравнивает строки сначала по длине. Большей считается та, которая содержит больше символов. При равенстве же длин строк, их сравнение происходит с помощью кодов символов. Строка считается большей предыдущей, если код символа одной строки больше кода символа другой, при равенстве предыдущих символов строк.

На языке JavaScript Вы можете использовать вместо конструкции if-else тернарный оператор присваивания. Он представляет собой более простой вариант условного оператора if, который в зависимости от истинности условия может выполнять всего только одну инструкцию. Для более сложных условий, состоящих из большого количества инструкций, Вам придётся использовать оператор if.

Тернарный оператор состоит из трех операндов, которые разделяются с помощью символов ? и :. Условие тернарного оператора задаётся в первом операнде, в зависимости от его логического значения, эта инструкция возвращает второй или третий операнд.

Условный оператор присваивания ?:

Оператор switch предназначен для выполнения инструкций одного из множества вариантов (case), выбор того или иного варианта определяется посредством равенства значений переменной и константы, которая указывается после ключевого слова case.

Оператор switch

Оператор switch состоит из ключевого слова switch, переменной числового или строкового типа и тела, которое обрамляется фигурными скобками. Тело оператора switch содержит один или несколько вариантов case и один вариант default.

Каждый из вариантов case оператора switch содержит ключевое слово case, константу (число или строку), ":" (знак "двоеточие"), инструкции и оператор break. Оператор break является необязательной инструкцией. Он предназначен для прерывания выполнения условного оператора switch и передачи управлению инструкции, идущей после оператора switch.

Вариант default также является необязательным и выполняется только в том случае, если значение переменной не совпало ни с одним значением константы вариантов case.

var candy=3;
switch (candy)
{
  case 1: 
        alert("Одна конфета");
        break;
  case 2:
  case 3:
        alert("Две или три конфеты");
        break;
  case 4:
       alert("Четыре конфеты");
       break;
  default:
       alert("Не знаю сколько конфет");
}

В вышеприведенном примере в качестве условия, от которого будет зависеть выполнение тех или иных инструкций, является переменная candy. Если значение переменной равно 1, то выполняются операторы alert("Одна конфета) и break. Оператор alert выводит на экран диалоговое окно с сообщением, а оператор break прерывает дальнейшее выполнения оператора switch и передаёт управление инструкции, идущей после тела условного оператора. Если оператор break не указать, то будут выполняться следующие инструкции оператора switch до тех пор, пока не встретится оператор break или не закончатся все инструкции. Если значение переменной равно 2, то на экран выведется диалоговое окно с сообщением "Две или три конфеты". То же самое произойдет, значение переменной равно 3. Если значение переменной не равно 1, 2, 3 или 4, то на экран выведется диалоговое окно с сообщением "Не знаю сколько конфет".



   JavaScript и jQuery 0    2987 0

Комментарии (0)

    Вы должны авторизоваться, чтобы оставлять комментарии.