Условная конструкция if…else в C#

В этом уроке вы узнаете, как в C# использовать конструкции if, if...else и if...else if для управления выполнением программы.

В программировании проверка условий неизбежна. Мы часто сталкиваемся с ситуациями, когда нам нужно проверить условия (истинны они или ложны), чтобы контролировать выполнение программы. На эти условия могут влиять ввод пользователя, время, контекст, в котором выполняется программа, и т. д.

Мы научимся проверять логические условия с помощью оператора if.

Конструкция if

Конструкция if выполняет блок кода, если заданное условие — истинно, т. е. true.

Синтаксис

if (условие)
{
  // инструкции, которые выполняются, если логическое-выражение истинно.
}

Условие может возвращать одно из двух значений: true или false.

  • Если условие = true, инструкции внутри тела if (внутри {...}) выполнятся.
  • Если условие = false, C# проигнорирует инструкции внутри тела if.

Пример

if (number < 5)
{
    number += 5;
}

В данном примере инструкция number += 5 выполнится только в том случае, если значение переменной number меньше 5.

Если забыли, что делает оператор +=, вернитесь к статье «Операторы». 

Блок-схема

Пример 1. Используем if

using System;

namespace Conditional
{
    class IfStatement
    {
        public static void Main(string[] args)
        {
            int number = 2;
            if (number < 5)
            {
                Console.WriteLine("{0} меньше 5", number);
            }

            Console.WriteLine("Эта строка выполняется всегда.");
        }
    }
}

Вывод:

2 меньше 5
Эта строка выполняется всегда.

Переменной number мы присваиваем значение 2. Это значит, что выражение number < 5 равно true. Следовательно, код внутри блока if выполняться будет. Код после оператора if всегда будет выполняться — независимо от результата выражения.

Теперь изменим значение number на значение больше 5: например, 10. 

Вывод 2:

Эта строка выполняется всегда.

Выражение number < 5 равно false, следовательно, код внутри блока if выполняться не будет.

Инструкция if...else

За инструкцией if в C# может идти инструкция else, но это необязательно. Код внутри блока else будет выполняться, когда условие равно false.

Синтаксис

if (условие)
{
   // инструкции, которые выполняются, если условие истинно
}
else
{
   // инструкции, которые выполняются, если условие ложно
}

Пример

if (number < 5)
{
    number += 5;
}
else
{
    number -= 5;
}

 В этом примере инструкция number += 5 будет выполняться, только если значение number меньше 5. А вот инструкция number -= 5, напротив, будет выполнять, если значение number больше или равно 5.

Блок-схема

Пример 2. Используем if...else

using System;

namespace Conditional
{
    class IfElseStatement
    {
        public static void Main(string[] args)
        {
            int number = 12;

            if (number < 5)
            {
                Console.WriteLine("{0} меньше 5", number);
            }
            else
            {
                Console.WriteLine("{0} больше или равно 5", number);
            }

            Console.WriteLine("Эта строка выполняется всегда.");
        }
    }
}

Вывод:

12 больше или равно 5
Эта строка выполняется всегда. 

Переменной number мы присваиваем значение 12. Это значит, что выражение number < 5 равно false. Следовательно, код внутри блока else выполняется. Код после инструкции if...else всегда будет выполняться независимо от результата выражения.

Теперь изменим значение number на значение меньше 5: например, 2. 

Вывод 2:

2 меньше 5
Эта строка выполняется всегда.

Выражение number < 5 вернет true, следовательно, код внутри блока if выполнится.

Инструкция if...else if

Когда у нас есть только одно условие для проверки, инструкции if и if...else работают нормально. Но что, если у нас несколько условий, которые нужно проверить?

В таком случае мы можем использовать оператор if...else if

Синтаксис

if (условие-1)
{
   // инструкции, которые выполняются, если условие-1 истинно.
}
else if (условие-2)
{
   // инструкции, которые выполняются, если условие-2 истинно.
}
else if (условие-3)
{
   // инструкции, которые выполняются, если условие-3 истинно.
}
.
.
.
else
{
   // инструкции, которые выполняются, если все условия ложны.
}

Инструкция if...else if выполняется сверху вниз. Как только какое-либо логическое выражение становится истинным, выполняется код внутри этого блока if (или else if). Затем управление выходит из инструкции.

Если ни одно из логических выражений не является истинным, выполняется код внутри блока 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("{0} меньше 5", number);
            }
            else if (number > 5)
            {
                Console.WriteLine("{0} больше 5", number);
            }
            else
            {
                Console.WriteLine("{0} равно 5");
            }
        }
    }
}

Вывод:

12 больше 5

Переменной number мы присваиваем значение 12. Таким образом, первое условие number < 5 равно false. Это значит, что, управление перейдет в блок else if. Условие number > 5 равно true. Значит, выполнится код внутри блока else if.

Примечание. Попробуйте менять значение number и посмотрите, как от этого меняется вывод программы.

Вложенная конструкция if...else

Инструкция if...else может существовать внутри другой инструкции if...else. Такие инструкции называются вложенными.

Синтаксис

if (логическое-выражение)
{
   if (вложенное-выражение-1)
   {
       // инструкции
   }
   else
   {
   // инструкции
   }
}
else
{
   if (вложенное-выражение-2)
   {
       // инструкции
   }
   else
   {
       // инструкции
   }
}

Вложенные инструкции if обычно используют, когда нужно последовательно проверить два условия. Если внешний оператор if возвращает true, то управление переходит в тело для проверки вложенного оператора if.

Пример 4. Используем вложенный if...else

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

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("{0} - наибольшее число", first);
                }
                else
                {
                    Console.WriteLine("{0} - наибольшее число", third);
                }
            }
            else
            {
                if (second > third)
                {
                    Console.WriteLine("{0} - наибольшее число", second);
                }
                else
                {
                    Console.WriteLine("{0} - наибольшее число", third);
                }
            }
        }
    }
}

Вывод:

13 — наибольшее число
codechick

СodeСhick.io - простой и эффективный способ изучения программирования.

2024 ©