Статьи

Изучите информатику с помощью JavaScript: часть 2, условные выражения

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

Для этого вам нужно использовать структуру решения, например, оператор if. Это будет выполнять действие только при определенных условиях. Если условие не существует, действие не выполняется. В этом уроке вы узнаете все об условных выражениях.

  • Если заявления
  • Реляционные операторы
  • Оператор if-else
  • Смена операторов
  • Логические операторы
  • Рассмотрение
  • Ресурсы

Один оператор if будет выполнять действие, если условие истинно. Если условие ложно, программа выполнит следующий оператор, который находится вне блока if. В следующем примере, если выражение isRaining() истинно, тогда мы будем putOnCoat() и putOnRainboots() затем goOutside() . Если isRaining() имеет значение false, программа будет выполнять только goOutside() .

1
2
3
4
5
6
if (isRaining) {
    putOnCoat();
    putOnRainboots();
}
 
goOutside();

Это общая форма написания оператора if:

1
2
3
4
5
if (condition) {
    statement;
    statement;
    etc.
}

Состояние это выражение, которое имеет значение true или false. Выражение, которое является истинным или ложным, называется логическим выражением. Булевы выражения создаются с помощью реляционных операторов.

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

оператор Смысл пример Смысл
== равенство х == у Х равен у?
=== строгое равенство х === у X равен y по значению и типу?
знак равно неравенство х! = у Разве х не равен у?
==! строгое неравенство х! == у Разве x не равен y по значению и типу?
> больше чем х> у Х больше чем у?
< меньше, чем х <у Х меньше чем у?
> = больше или равно х> = у Х больше или равен у?
<= меньше или равно х <= у Х меньше или равен у?

Важно отметить разницу между оператором равенства == и оператором строгого равенства === . Например, выражение 2 == "2" является истинным. Но выражение 2 === "2" неверно. Во втором примере два значения представляют собой разные типы данных, и поэтому выражение является ложным. Лучше всего использовать === или !== .

В следующем примере будет отображено сообщение «Вы получаете A».

1
2
3
4
5
let grade = 93;
 
if (grade >= 90) {
    console.log(«You get an A»);
}

Какое значение имеет выражение 5> 3? 6! = «6»?

Оператор if-else выполнит один блок операторов, если его условие истинно, или другой блок, если его условие ложно. В следующем примере отобразится сообщение «valid username», поскольку условие истинно.

1
2
3
4
5
6
7
let username = «alberta»;
 
if (username === «alberta») {
    console.log(«valid username»);
} else {
    console.log(«Incorrect username. Try again.»);
}

Это общая форма оператора if-else:

1
2
3
4
5
6
7
8
9
if (condition) {
    statement;
    statement;
    etc.
} else {
    statement;
    statement;
    etc.
}

Каким будет вывод этой программы:

1
2
3
4
5
6
7
let isLoggedIn = false;
 
if (isLoggedIn) {
    console.log(«Welcome»);
} else {
    console.log(«You are not logged in»);
}

Также можно проверить наличие более одного условия. Пример:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
let num = 3;
 
if (num === 1) {
    console.log(«I»);
} else if (num === 2) {
    console.log(«II»);
} else if (num === 3) {
    console.log(«III»);
} else if (num === 4) {
    console.log(«IV»);
} else if (num === 5) {
    console.log(«V»);
} else {
    console.log(«Invalid input»);
}

Это общая форма для написания нескольких операторов if-else-if:

01
02
03
04
05
06
07
08
09
10
11
12
13
if (condition1) {
    statement;
    statement;
    etc.
} else if (condition2) {
    statement;
    statement;
    etc.
} else {
    statement;
    statement;
    etc.
}

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
let num = 3;
 
switch (num) {
    case 1:
        console.log(«I»);
        break;
    case 2:
        console.log(«II»);
        break;
    case 3:
        console.log(«III»);
        break;
    case 4:
       console.log(«IV»);
        break;
    case 5:
       console.log(«V»);
       break;
    default:
        console.log(«Invalid input»);
}

Это общая форма оператора switch:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
switch (expression) {
    case value1:
        statement;
        statement;
        etc.
        break;
    case value2:
        statement;
        statement;
        etc.
        break;
    default:
        statement;
        statement;
        etc.
}

Каждый случай представляет значение, которое может принимать наше выражение. Только блок кода для случая, который является истинным, будет выполнен. Мы включаем оператор break в конец блока кода, чтобы программа выходила из оператора switch и не выполняла никаких других случаев. Случай по умолчанию выполняется, когда ни один из других случаев не верен.

Напишите инструкцию переключения, которая отображает день недели с указанным числом. Например, 1 = воскресенье, 2 = понедельник и т. Д.

Оператор and && и оператор or || позвольте нам соединить два логических выражения. Не оператор ! отрицает выражение. Чтобы проиллюстрировать, как работают логические операторы, мы рассмотрим таблицу истинности. Таблица истинности содержит все комбинации значений, используемые с операторами. Я использую P для представления левого выражения и Q для правого выражения.

&& таблица истинности:

п Q P && Q
правда правда правда
правда ложный ложный
ложный правда ложный
ложный ложный ложный

Мы читаем таблицу, проходящую через каждый ряд. Первая строка говорит нам, что когда P истинно, а Q истинно, P && Q истинно. В следующем примере проверяется, составляет ли 82 от 60 до 100 включительно.

  • пусть х = 82;
  • x> = 60 && x <= 100
  • P: x> = 60 верно
  • Q: х <= 100 верно
  • P && Q: true && true

|| таблица истинности:

п Q P || Q
правда правда правда
правда ложный правда
ложный правда правда
ложный ложный ложный

В этом примере проверяется, находится ли 82 вне диапазона 60–100:

  • пусть х = 82;
  • х <60 || х> 100
  • P: x <60 ложно
  • Q: x> 100 ложно
  • P || Q: false || ложный

! таблица истинности:

п
правда ложный
ложный правда

Пример:

  • х = 82
  • P: x> 0 верно
  • ! P: ложь

Заполните таблицу с пропущенными значениями.

п Q ! Q ! P &&! Q ! P || ! Q
правда правда
правда ложный
ложный правда
ложный ложный

Что полезно знать о логических операторах, так это то, что если выражение в левой части оператора && равно false, выражение справа не будет проверено, поскольку весь оператор ложен. И если выражение в левой части || оператор равен true, выражение справа не будет проверено, поскольку весь оператор равен true.

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

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

Далее в части 3 мы обсудим циклы.