C# if, if...else, if...else if и вложенный оператор if
C# if, if...else, if...else if и вложенный оператор if
В этой статье мы узнаем, как использовать оператор if, if...else, if...else if в C# для управления потоком выполнения нашей программы.
Проверка условия неизбежна в программировании. Мы часто будем сталкиваться с ситуациями, когда нам нужно проверить условия (будь то true или false ) для управления потоком программы. На эти условия могут влиять действия пользователя, фактор времени, текущая среда, в которой работает программа, и т. д.
В этой статье мы научимся проверять условия с помощью оператора if в C#.
<час>Выражение C# if (if-then)
Оператор C# if-then выполнит блок кода, если заданное условие истинно. Синтаксис оператора if-then в C#:
if (boolean-expression)
{
// statements executed if boolean-expression is true
}
- Булево выражение вернет либо true или
false. - Если логическое выражение возвращает
true, операторы внутри тела if (внутри{...}) будет выполнено. - Если логическое выражение возвращает
false, операторы внутри тела if будут игнорироваться.
Например,
if (number < 5)
{
number += 5;
}
В этом примере оператор
number += 5;
будет выполняться, только если значение числа меньше 5.
Помните оператор +=?
Как работает оператор if?
<рисунок>
Пример 1. Оператор C# if
using System;
namespace Conditional
{
class IfStatement
{
public static void Main(string[] args)
{
int number = 2;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
Console.WriteLine("This statement is always executed.");
}
}
}
Когда мы запустим программу, вывод будет таким:
2 is less than 5 This statement is always executed.
Значение число инициализируется значением 2. Таким образом, выражение number < 5 оценивается как true . Следовательно, код внутри блока if выполняется. Код после оператора if всегда будет выполняться независимо от выражения.
Теперь измените значение number. к чему-то большему, чем 5 , например 10 . Когда мы запустим программу, вывод будет:
This statement is always executed.
Выражение number < 5 вернет false , поэтому код внутри блока if не будет выполнен.
Выражение C# if...else (if-then-else)
Оператор if в C# может иметь необязательный оператор else. Блок кода внутри оператора else будет выполнен, если выражение оценивается как false. .
Синтаксис оператора if...else в C#:
if (boolean-expression)
{
// statements executed if boolean-expression is true
}
else
{
// statements executed if boolean-expression is false
}
Например,
if (number < 5)
{
number += 5;
}
else
{
number -= 5;
}
В этом примере оператор
number += 5;
будет выполняться, только если значение number меньше 5 .
Заявление
number -= 5;
будет выполнено, если значение числа больше или равно 5 .
Как работает выражение if...else?
<рисунок>
Пример 2. Оператор C# if...else
using System;
namespace Conditional
{
class IfElseStatement
{
public static void Main(string[] args)
{
int number = 12;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
else
{
Console.WriteLine("{0} is greater than or equal to 5", number);
}
Console.WriteLine("This statement is always executed.");
}
}
}
Когда мы запустим программу, вывод будет таким:
12 is greater than or equal to 5 This statement is always executed.
Здесь значение число инициализируется значением 12 . Итак, выражение number < 5 оценивается как false . Следовательно, выполняется код внутри блока else. Код после оператора if..else всегда будет выполняться независимо от выражения.
Теперь измените значение числа на меньшее, чем 5. , например 2 . Когда мы запустим программу, вывод будет:
2 is less than 5 This statement is always executed.
Выражение number < 5 вернет true, поэтому код внутри блока if будет выполнен.
Тернарный оператор в C# обеспечивает сокращение для оператора C# if...else.
<час>Выражение C# if...else if (if-then-else if)
Когда у нас есть только одно условие для проверки, операторы if-then и if-then-else работают нормально. Но что, если у нас есть несколько условий для проверки и выполнения одного из множества блоков кода.
В таком случае мы можем использовать оператор if..else if в C#. Синтаксис оператора if...else if:
if (boolean-expression-1)
{
// statements executed if boolean-expression-1 is true
}
else if (boolean-expression-2)
{
// statements executed if boolean-expression-2 is true
}
else if (boolean-expression-3)
{
// statements executed if boolean-expression-3 is true
}
.
.
.
else
{
// statements executed if all above expressions are false
}
Оператор if...else if выполняется из сверху в вниз . Как только тестовое выражение равно true , код внутри этого блока if (или else if) выполняется. Затем элемент управления выходит из блока if...else if.
Если ни одно из выражений не равно true , выполняется код внутри блока else.
В качестве альтернативы мы можем использовать оператор switch в таких условиях.
Пример 3. Оператор C# if...else if
using System;
namespace Conditional
{
class IfElseIfStatement
{
public static void Main(string[] args)
{
int number = 12;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
else if (number > 5)
{
Console.WriteLine("{0} is greater than 5", number);
}
else
{
Console.WriteLine("{0} is equal to 5");
}
}
}
}
Когда мы запустим программу, вывод будет таким:
12 is greater than 5
Значение числа инициализируется равным 12 . Первое тестовое выражение number < 5 это false , поэтому управление переместится в блок else if. Тестовое выражение number > 5 true следовательно, будет выполнен блок кода внутри else if.
Точно так же мы можем изменить значение number. чтобы изменить ход выполнения.
Вложенное выражение if...else
Оператор if...else может существовать внутри другого оператора if...else. Такие операторы называются вложенными операторами if...else.
Общая структура вложенного оператора if…else:
if (boolean-expression)
{
if (nested-expression-1)
{
// code to be executed
}
else
{
// code to be executed
}
}
else
{
if (nested-expression-2)
{
// code to be executed
}
else
{
// code to be executed
}
}
Вложенные операторы if обычно используются, когда нам нужно проверить одно условие, за которым следует другое. Во вложенном операторе if, если внешний оператор if возвращает значение true, он входит в тело для проверки внутреннего оператора if.
Пример 4. Вложенный оператор if...else
Следующая программа вычисляет наибольшее число из трех, используя вложенный оператор 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 (firstNumber > third)
{
Console.WriteLine("{0} is the largest", first);
}
else
{
Console.WriteLine("{0} is the largest", third);
}
}
else
{
if (second > third)
{
Console.WriteLine("{0} is the largest", second);
}
else
{
Console.WriteLine("{0} is the largest", third);
}
}
}
}
}
Когда мы запустим программу, вывод будет таким:
13 is the largest
Язык C