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