- if. else
- Синтаксис
- Описание
- Примеры
- Использование if. else
- Использование else if
- Присваивание в условном выражении
- Спецификации
- Совместимость браузеров
- Смотрите также
- Found a content problem with this page?
- MDN
- Support
- Our communities
- Developers
- Условное ветвление: if, ‘?’
- Инструкция «if»
- Преобразование к логическому типу
- Блок «else»
- Несколько условий: «else if»
- Условный оператор „?“
- Несколько операторов „?“
- Нетрадиционное использование „?“
- Задачи
- if (строка с нулём)
- Название JavaScript
- Условные операторы if, else, elseif. Примеры сценариев. Ноя 16 2016
- Пишем сценарий для кнопки с помощью условных операторов.
- Пишем сценарий для двух кнопок.
- Пишем сценарий приветствия по имени.
- Пишем простейший сценарий авторизации.
- Сценарий приветствия в зависимости от времени суток.
if. else
Инструкция if выполняет инструкцию, если указанное условие выполняется (истинно). Если условие не выполняется (ложно), то может быть выполнена другая инструкция.
Синтаксис
if (условие) инструкция1 [else инструкция2]
Выражение, которое является либо истинным, либо ложным.
Инструкция, выполняемая в случае, если значение «условиe» истинно ( true ). Может быть любой инструкцией в том числе и вложенным if . Для группировки нескольких инструкций используется блок ( <. >), Когда никакого действия не требуется, может использоваться пустая инструкция.
Инструкция, выполняемая в случае, если значение «условиe» ложно ( false ). Может быть любой инструкцией, в том числе и вложенным if . Инструкции тоже можно группировать в блок.
Описание
Несколько команд if . else могут быть вложены для создания условия else if . Обратите внимание, что в JavaScript нет ключевого слова elseif (в одно слово).
if (условие1) инструкция1 else if (условие2) инструкция2 else if (условие3) инструкция3 . else инструкция
Чтобы увидеть, как это работает, ниже представлен пример правильного вложения с отступами:
if (условие1) инструкция1 else if (условие2) инструкция2 else if (условие3) .
Чтобы выполнить несколько инструкций в условии, используйте блочный оператор (<. >) для группирования этих инструкций. В общем, хорошей практикой всегда является использование блочных операторов, особенно в коде, включающем вложенные операторы if :
Не путайте примитивные логические значения true и false с правдивостью или ложностью булева объекта. Любое значение, которое не undefined , null , 0 , NaN или пустая строка («»), и любой объект, включая объект Boolean, значение которого является ложным, считается правдивым при использовании в качестве условия. Например:
var b = new Boolean(false); if (b) // это условие истинно
Примеры
Использование if. else
if (cipher_char === from_char) result = result + to_char; x++; > else result = result + clear_char; >
Использование else if
Обратите внимание, что в JavaScript нет синтаксиса elseif . Однако вы можете записать его с пробелом между else и if :
if (x > 5) > else if (x > 50) > else >
Присваивание в условном выражении
Целесообразно не использовать простые присваивания в условном выражении, потому что при взгляде на код присваивание можно путать с равенством. Например, не используйте следующий код:
Если вам нужно использовать присваивание в условном выражении, обычной практикой является размещение дополнительных скобок вокруг присваивания. Например:
Спецификации
Совместимость браузеров
BCD tables only load in the browser
Смотрите также
Found a content problem with this page?
This page was last modified on 7 нояб. 2022 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
Our communities
Developers
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.
Условное ветвление: if, ‘?’
Иногда нам нужно выполнить различные действия в зависимости от условий.
Для этого мы можем использовать инструкцию if и условный оператор ? , который также называют оператором «вопросительный знак».
Инструкция «if»
Инструкция if(. ) вычисляет условие в скобках и, если результат true , то выполняет блок кода.
let year = prompt('В каком году была опубликована спецификация ECMAScript-2015?', ''); if (year == 2015) alert( 'Вы правы!' );
В примере выше, условие – это простая проверка на равенство ( year == 2015 ), но оно может быть и гораздо более сложным.
Если мы хотим выполнить более одной инструкции, то нужно заключить блок кода в фигурные скобки:
Мы рекомендуем использовать фигурные скобки <> всегда, когда вы используете инструкцию if , даже если выполняется только одна команда. Это улучшает читаемость кода.
Преобразование к логическому типу
Инструкция if (…) вычисляет выражение в скобках и преобразует результат к логическому типу.
Давайте вспомним правила преобразования типов из главы Преобразование типов:
- Число 0 , пустая строка «» , null , undefined и NaN становятся false . Из-за этого их называют «ложными» («falsy») значениями.
- Остальные значения становятся true , поэтому их называют «правдивыми» («truthy»).
Таким образом, код при таком условии никогда не выполнится:
…а при таком – выполнится всегда:
Мы также можем передать заранее вычисленное в переменной логическое значение в if , например так:
let condition = (year == 2015); // преобразуется к true или false if (condition)
Блок «else»
Инструкция if может содержать необязательный блок «else» («иначе»). Он выполняется, когда условие ложно.
let year = prompt('В каком году была опубликована спецификация ECMAScript-2015?', ''); if (year == 2015) < alert( 'Да вы знаток!' ); >else < alert( 'А вот и неправильно!' ); // любое значение, кроме 2015 >
Несколько условий: «else if»
Иногда нужно проверить несколько вариантов условия. Для этого используется блок else if .
let year = prompt('В каком году была опубликована спецификация ECMAScript-2015?', ''); if (year < 2015) < alert( 'Это слишком рано. ' ); >else if (year > 2015) < alert( 'Это поздновато' ); >else
В приведённом выше коде JavaScript сначала проверит year < 2015 . Если это неверно, он переходит к следующему условию year >2015 . Если оно тоже ложно, тогда сработает последний alert .
Блоков else if может быть и больше. Присутствие блока else не является обязательным.
Условный оператор „?“
Иногда нам нужно определить переменную в зависимости от условия.
let accessAllowed; let age = prompt('Сколько вам лет?', ''); if (age > 18) < accessAllowed = true; >else < accessAllowed = false; >alert(accessAllowed);
Так называемый «условный» оператор «вопросительный знак» позволяет нам сделать это более коротким и простым способом.
Оператор представлен знаком вопроса ? . Его также называют «тернарный», так как этот оператор, единственный в своём роде, имеет три аргумента.
let result = условие ? значение1 : значение2;
Сначала вычисляется условие : если оно истинно, тогда возвращается значение1 , в противном случае – значение2 .
let accessAllowed = (age > 18) ? true : false;
Технически, мы можем опустить круглые скобки вокруг age > 18 . Оператор вопросительного знака имеет низкий приоритет, поэтому он выполняется после сравнения > .
Этот пример будет делать то же самое, что и предыдущий:
// оператор сравнения "age > 18" выполняется первым в любом случае // (нет необходимости заключать его в скобки) let accessAllowed = age > 18 ? true : false;
Но скобки делают код более простым для восприятия, поэтому мы рекомендуем их использовать.
В примере выше вы можете избежать использования оператора вопросительного знака ? , т.к. сравнение само по себе уже возвращает true/false :
// то же самое let accessAllowed = age > 18;
Несколько операторов „?“
Последовательность операторов вопросительного знака ? позволяет вернуть значение, которое зависит от более чем одного условия.
let age = prompt('Возраст?', 18); let message = (age < 3) ? 'Здравствуй, малыш!' : (age < 18) ? 'Привет!' : (age < 100) ? 'Здравствуйте!' : 'Какой необычный возраст!'; alert( message );
Поначалу может быть сложно понять, что происходит. Но при ближайшем рассмотрении мы видим, что это обычная последовательная проверка:
Вот как это выглядит при использовании if..else :
if (age < 3) < message = 'Здравствуй, малыш!'; >else if (age < 18) < message = 'Привет!'; >else if (age < 100) < message = 'Здравствуйте!'; >else
Нетрадиционное использование „?“
Иногда оператор «вопросительный знак» ? используется в качестве замены if :
let company = prompt('Какая компания создала JavaScript?', ''); (company == 'Netscape') ? alert('Верно!') : alert('Неправильно.');
В зависимости от условия company == 'Netscape' , будет выполнена либо первая, либо вторая часть после ? .
Здесь мы не присваиваем результат переменной. Вместо этого мы выполняем различный код в зависимости от условия.
Не рекомендуется использовать оператор вопросительного знака таким образом.
Несмотря на то, что такая запись короче, чем эквивалентная инструкция if , она хуже читается.
Вот, для сравнения, тот же код, использующий if :
let company = prompt('Какая компания создала JavaScript?', ''); if (company == 'Netscape') < alert('Верно!'); >else
При чтении глаза сканируют код по вертикали. Блоки кода, занимающие несколько строк, воспринимаются гораздо легче, чем длинный горизонтальный набор инструкций.
Смысл оператора «вопросительный знак» ? – вернуть то или иное значение, в зависимости от условия. Пожалуйста, используйте его именно для этого. Когда вам нужно выполнить разные ветви кода – используйте if .
Задачи
if (строка с нулём)
Да, выведется.
Любая строка, кроме пустой (а строка "0" – не пустая), в логическом контексте становится true .
Можно запустить и проверить:
Название JavaScript
Используя конструкцию if..else , напишите код, который будет спрашивать: „Какое «официальное» название JavaScript?“
Если пользователь вводит «ECMAScript», то показать: «Верно!», в противном случае – отобразить: «Не знаете? ECMAScript!»
Условные операторы if, else, elseif. Примеры сценариев. Ноя 16 2016
С помощью условных операторов if, else, elseif можно составить логическую конструкцию и написать сценарий для чего угодно. Если мы переведём названия этих условных операторов, то сразу поймём о чём идёт речь.
If переводится как «если»,
Else переводится как «иначе»,
Логика конструкции условных операторов проста, с такой логикой мы сталкиваемся в жизни каждый день.
Ну, к примеру, такое высказывание:
Слова "если" и "иначе" как раз и являются условными операторами.
В языке программирования то же самое, но условия и события мы устанавливаем сами, используя условные операторы, как творцы наших идей.
если (условие верно) <
происходит какое-то действие;
>
иначе , если условие не верно <
происходит другое действие;
>
Синтаксис PHP будет выглядеть следующим образом:
if (условие верно) Выполняется некое действие;
>
else Выполняется другое действие, если условие не верно;
>
?>?php>
Пишем сценарий для кнопки с помощью условных операторов.
В папке Open Server -> domains создадим папку и назовём её, к примеру, lesson3.local.
В редакторе создаём файл index.php( синтаксис выставляем PHP) и сохраняем его в папку lesson3.local.
И напишем простую HTML кнопку:
Для атрибута method в теге form мы поставили значение POST. Это означает, что данные формы будут отправляться методом POST. Подробнее о методах передачи данных мы поговорим в следующих уроках. Что такое action тоже пока не заморачивайтесь.
Если мы откроем index.php через Open Server, то у нас появится просто кнопка, но пока не работающая.
Ну а теперь пишем сам сценарий.
Допустим, мы хотим, чтобы при нажатии на кнопку появлялась фраза «Вы нажали на кнопку».
Логически это будет выглядеть так:
Приблизим выражение к языку PHP, используя условные операторы:
А теперь под HTML пишем сам код PHP:
Если этот код перевести с языка PHP на русский, то это будет выглядеть вот так:
Если ( установлен ( метод формы POST [ кнопки с именем ‘but’ ])) <
Выводится фраза «Вы нажали на кнопку» ;
>
А если совсем по-русски, то
Если данные формы были отправлены методом POST при нажатии на кнопку с именем but,
то пользователь увидит фразу «Вы нажали на кнопку».
Примерно так должен мыслить программист при написании сценария.
Пишем сценарий для двух кнопок.
Если мы нажимаем кнопку1,
То мы видим сообщение «Вы нажали кнопку1».
Или же, если мы нажали на кнопку2,
То мы увидим сообщение «Вы нажали на кнопку2».
С кнопками я думаю вы разобрались. Так можно написать сценарии и для трёх кнопок и для 10-ти…
Пишем сценарий приветствия по имени.
Сценарий таков: пользователь вводит своё имя в окошко, и при нажатии на кнопку, появляется фраза приветствия.
Итак, сначала пишем HTML форму.
Сначала мы должны создат ь переменную $name, в неё мы поместим имя, которое введёт пользователь.
А затем под формой HTML мы напишем уже знакомую нам конструкцию, используя условный оператор if:
Пишем простейший сценарий авторизации.
Допустим, у нас есть всего два пользователя: Вася и Петя. Остальных пользователей система не знает.
Если мы введём имя Вася,
то появится фраза «Привет Вася».
Или же, если мы введём имя Петя,
то появится фраза «Привет Петя».
Иначе, если мы ничего не введём, или введём другое имя,
то появится фраза «Привет гость».
Ну и напоследок, заодно вспомните предыдущий урок:
Сценарий приветствия в зависимости от времени суток.
Таким образом, можно придумать множество сценариев, используя условные операторы if, else, elseif. Так что, потренируйтесь, советую вам набирать код руками, а не копировать его, так вы быстрее освоите язык PHP.