Ваш помощник по программированию № 2: глубокое погружение в условные операторы
Условные операторы в языках программирования позволяют выполнять блок кода только при выполнении определенного условия. В статье о потоке управления мы видели основы этого, но мы также можем использовать условия в некоторых других формах. Итак, давайте посмотрим на некоторые из них.
Вложенные условия
Вложенность условных операторов относится к практике размещения одного условного оператора внутри другого. Вот пример на Python:
x = 10
y = 20
if x > 5:
if y > 15:
print("x is greater than 5 and y is greater than 15")
else:
print("x is greater than 5 and y is not greater than 15")
else:
print("x is not greater than 5")
В этом примере у нас есть два условия для проверки: больше ли x 5 и больше ли y 15. Внутренний оператор if проверяет, больше ли y 15, а внешний оператор if проверяет, больше ли x 5 .
Если оба условия выполняются, программа напечатает «x больше 5, а y больше 15». Если x больше 5, но y не больше 15, программа напечатает «x больше 5, а y не больше 15». Если x не больше 5, программа напечатает «x не больше 5».
Тернарные операторы
Тернарный оператор — это сокращенный способ написания простых операторов if-else в некоторых языках программирования. Вот пример на Ruby:
x = 10 y = 20 result = x > 5 ? "x is greater than 5" : "x is not greater than 5" puts result result = y > 15 ? "y is greater than 15" : "y is not greater than 15" puts result
В этом примере мы используем тернарный оператор для определения значения переменной result на основе двух условий: больше ли x 5 и больше ли y 15.
Основной синтаксис тернарного оператора в большинстве современных языков — condition ? expression1 : expression2, где expression1 выполняется, если условие истинно, а expression2 выполняется, если условие ложно.
Операторы Switch
Оператор switch — это способ выполнения условной логики в некоторых языках программирования. Его часто используют в качестве альтернативы серии операторов if-else, особенно когда нужно рассмотреть множество случаев. Вот пример на JavaScript:
const x = 10;
switch (x) {
case 5:
console.log("x is 5");
break;
case 10:
console.log("x is 10");
break;
default:
console.log("x is not 5 or 10");
break;
}
В этом примере оператор switch проверяет значение x и выполняет на его основе другой блок кода. Если x равно 5, программа запишет «x равно 5». Если x равно 10, программа запишет «x равно 10». Если x не равно ни 5, ни 10, программа запишет «x не равно 5 или 10».
Каждый case в операторе switch является возможным значением для x, и код, следующий за каждым case, выполняется, если x равно этому значению. Оператор break используется для остановки выполнения оператора switch после выполнения case. Если вы не включите оператор break, оператор switch будет продолжать выполнять код для каждого последующего случая, даже если совпадение было найдено.
Оценка короткого замыкания
Быстрое вычисление — это функция некоторых языков программирования, позволяющая пропустить вычисление выражения, если его результат может быть определен без вычисления всего выражения. Вот пример на PHP:
$x = 10;
$y = 0;
if ($x > 5 && $y != 0) {
// this block of code will not be executed
// because $y is equal to 0
}
В этом примере мы используем оператор && для проверки того, что $x больше 5 и $y не равно 0. Поскольку $y равно 0, нет необходимости вычислять вторую часть выражения ($y != 0).
Краткая оценка — полезная функция, поскольку она может помочь вам написать более эффективный и читаемый код, а также избежать потенциальных ошибок и предупреждений в вашей программе. Однако важно помнить о порядке операций при использовании ускоренной оценки и при необходимости использовать круглые скобки для управления порядком оценки.
Знайте свои ложные ценности
Ложные значения — это значения, которые считаются «ложными» в условных операторах. В большинстве языков программирования следующие значения считаются ложными:
0(целый нуль)""(пустая строка)false(логическое значениеfalse)null(нулевое значение)
Любое другое значение, включая все ненулевые целые числа, все непустые строки и логическое значение true, считается истинным. Среди тем этой статьи ложные значения чаще всего имеют особенности в каждом языке, поэтому имейте это в виду при написании условий.
Вот пример ложных значений в скрипте оболочки:
#!/bin/bash x=0 if [ $x ]; then echo "x is truthy" else echo "x is falsey" fi x="" if [ $x ]; then echo "x is truthy" else echo "x is falsey" fi x=false if [ $x ]; then echo "x is truthy" else echo "x is falsey" fi
В этом примере выражение [ $x ] используется для проверки того, является ли $x истинным или ложным. Если $x соответствует действительности, выражение оценивается как true, и код в блоке if будет выполнен. Если $x ложно, выражение будет оцениваться как false, и будет выполнен код в блоке else.
Обратите внимание, что я намеренно добавил каждый пример на другом языке. Это потому, что мы говорим здесь об очень базовых концепциях программирования, поэтому я хотел продемонстрировать, что синтаксис не будет мешать их пониманию.