Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Принятие решений в C#: условные конструкции if, else, switch

Структуры принятия решений

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

Типы операторов принятия решений в C#

#ОператорОписание
1ifБулево выражение, за которым следует один или более операторов
2if...elseif с необязательным блоком else для ложного условия
3Вложенные ifОдин if или else if внутри другого
4switchПроверка переменной на равенство со списком значений
5Вложенные switchОдин switch внутри другого

Оператор if

if (условие)
{
    // выполняется, если условие true
}

Оператор if...else

if (условие)
{
    // true
}
else
{
    // false
}

Цепочка if...else if...else

if (условие1)
{
    // ...
}
else if (условие2)
{
    // ...
}
else
{
    // ни одно не истинно
}

Оператор switch

Позволяет проверить переменную на равенство списку констант (case labels).

switch (выражение)
{
    case значение1:
        // код
        break;
    case значение2:
        // код
        break;
    default:
        // если ни один case не совпал
        break;
}

Важно: В C# каждый case должен заканчиваться break, return, throw или goto (нет неявного fall-through, как в C/C++). Можно группировать case: case 1: case 2: ...

Пример switch

int day = 3;
switch (day)
{
    case 1: Console.WriteLine("Понедельник"); break;
    case 2: Console.WriteLine("Вторник"); break;
    case 3: Console.WriteLine("Среда"); break;
    default: Console.WriteLine("Другой день"); break;
}
// Вывод: Среда

Switch-выражения (C# 8.0+)

Более лаконичный синтаксис для возврата значения:

string dayName = day switch
{
    1 => "Понедельник",
    2 => "Вторник",
    3 => "Среда",
    _ => "Неизвестно"
};

Pattern matching в switch (C# 7.0+)

object obj = "hello";
switch (obj)
{
    case int i when i > 0:
        Console.WriteLine($"Положительное число: {i}");
        break;
    case string s:
        Console.WriteLine($"Строка длины {s.Length}");
        break;
    case null:
        Console.WriteLine("Null");
        break;
    default:
        Console.WriteLine("Другой тип");
        break;
}

Оператор ? : (тернарный условный)

Может заменять простые if...else:

Exp1 ? Exp2 : Exp3;

Пример:

int a = 10, b = 20;
int max = (a > b) ? a : b; // max = 20
string result = (max % 2 == 0) ? "чётное" : "нечётное";

Вложенные операторы

Можно вкладывать if в if, switch в switch, и комбинировать их. Избегайте глубокой вложенности — используйте ранние возвраты (return), guard clauses или выносите логику в отдельные методы.

Язык C

  1. Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
  2. Оператор break в C#: как и когда использовать
  3. Оператор continue в C#: как эффективно пропускать итерации циклов
  4. Освоение оператора break в C++
  5. Освоение оператора continue в C++: практические примеры и управление циклами
  6. Условные операторы в C: if, else и не только — подробное руководство
  7. Оператор pass в Python: практическое руководство
  8. Базовый синтаксис C: токены, идентификаторы, ключевые слова и пробелы
  9. Усиление принятия решений в передовитом производстве через мощную аналитику
  10. Оптимизация приёма данных для более умного принятия решений