Условная логика в C#: if, if-else, if-else-if и вложенные if
Условная логика в C#: if, if-else, if-else-if и вложенные if
В этой статье мы научимся использовать if, if...else, if...else if для управления потоком выполнения программы.
Проверка условий — основа любого языка. В C# условные операторы позволяют вычислять булевы выражения и решать, какие блоки кода выполнять. Условия часто зависят от пользовательского ввода, состояния системы, времени и др.
Оператор if (If-Then)
Простейшая форма: выполняет блок, когда булево выражение истинно.
if (booleanExpression) {
// код, выполняемый при true
}
booleanExpressionдолжен возвращать true или false.- При true выполняются операторы в фигурных скобках.
- При false они пропускаются.
Пример:
if (number < 5) {
number += 5;
}
number += 5; выполняется только если number < 5.
Как работает if

Пример 1: Базовый if
using System;
namespace Conditional {
class IfStatement {
public static void Main(string[] args) {
int number = 2;
if (number < 5) {
Console.WriteLine($"{number} is less than 5");
}
Console.WriteLine("This statement is always executed.");
}
}
}
Вывод:
2 is less than 5 This statement is always executed.
Если number = 10:
This statement is always executed.
Условие ложно, блок пропускается.
Оператор if...else (If-Then-Else)
Для обработки обоих исходов добавляется else:
if (booleanExpression) {
// при true
} else {
// при false
}
Пример:
if (number < 5) {
number += 5;
} else {
number -= 5;
}
Как работает if...else

Пример 2: Использование if...else
using System;
namespace Conditional {
class IfElseStatement {
public static void Main(string[] args) {
int number = 12;
if (number < 5) {
Console.WriteLine($"{number} is less than 5");
} else {
Console.WriteLine($"{number} is greater than or equal to 5");
}
Console.WriteLine("This statement is always executed.");
}
}
}
Вывод для 12:
12 is greater than or equal to 5 This statement is always executed.
Для 2:
2 is less than 5 This statement is always executed.
Для простых случаев можно использовать тернарный оператор.
Оператор if...else if (If-Then-Else If)
Для множественных условий цепочкой else if:
if (condition1) {
// код для condition1
} else if (condition2) {
// код для condition2
} else if (condition3) {
// код для condition3
} else {
// если все ложны
}
Цепочка оценивается сверху вниз; выполнение останавливается на первом true. Если ни одно не совпало — выполняется else.
Для дискретных значений часто удобнее switch.
Пример 3: if...else if
using System;
namespace Conditional {
class IfElseIfStatement {
public static void Main(string[] args) {
int number = 12;
if (number < 5) {
Console.WriteLine($"{number} is less than 5");
} else if (number > 5) {
Console.WriteLine($"{number} is greater than 5");
} else {
Console.WriteLine($"{number} is equal to 5");
}
}
}
}
Вывод для 12:
12 is greater than 5
При изменении number на 4 или 5 вывод изменится соответственно.
Вложенные if...else
Один условный блок внутри другого — для многоуровневой логики.
if (outerCondition) {
if (innerCondition1) {
// оба истинны
} else {
// внешний true, внутренний false
}
} else {
if (innerCondition2) {
// внешний false, внутренний2 true
} else {
// оба false
}
}
Удобно для поэтапных проверок, например, валидация ввода или поиск максимума.
Пример 4: Поиск наибольшего из трёх чисел
using System;
namespace Conditional {
class Nested {
public static void Main(string[] args) {
int first = 7, second = -23, third = 13;
if (first > second) {
if (first > third) {
Console.WriteLine($"{first} is the largest");
} else {
Console.WriteLine($"{third} is the largest");
}
} else {
if (second > third) {
Console.WriteLine($"{second} is the largest");
} else {
Console.WriteLine($"{third} is the largest");
}
}
}
}
}
Результат:
13 is the largest
Измените значения для проверки других вариантов.
Язык C
- Бипер (пейджер): от ранних инноваций к двусторонней связи завтрашнего дня
- Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
- Оператор break в C#: как и когда использовать
- Оператор continue в C#: как эффективно пропускать итерации циклов
- Вложенные классы в C#: определение, использование и наследование
- Операторы, отступы и комментарии в Python: понятное руководство
- Вложенные и внутренние классы в Java: типы, примеры и лучшие практики
- Базовый синтаксис C: токены, идентификаторы, ключевые слова и пробелы
- Константы и литералы в C: целочисленные, вещественные, символьные, строковые и определение констант
- Константы и литералы в C#: типы, правила и лучшие практики