Перейти до основного вмісту

Конструкція if...else

Умовні конструкції є одним з базових компонентів багатьох мов програмування, які спрямовують роботу програми по одному з шляхів в залежності від певних умов. Однією з таких конструкцій у мові програмування C# є конструкція if..else

Конструкція if/else перевіряє, чи виконується деяка умова, і в залежності від результатів перевірки виконує певний код.

Найпростіша її форма складається з блоку if:

if(умова)
{
виконувані інструкції
}

Умова розміщується після ключового слова if. Умова повинна представляти значення типу bool. Це може бути як безпосередньо значення типу bool, так і результат умовного виразу або іншого виразу, який повертає значення типу bool. І якщо ця умова істинна (дорівнює true), то спрацьовує код, який розміщується далі після умови всередині фігурних дужок.

Наприклад:

int num1 = 8
int num2 = 6
if(num1 > num2)
{
//істина
}

У нашому випадку перше число більше за друге, тому вираз num1 > num2 є істинним і повертає true, а отже управління передається на рядок Console.WriteLine(«Число {num1} більше за число {num2}»);

Якщо блок if містить одну інструкцію, ми можемо скоротити його, видаливши фігурні дужки:

int num1 = 8
int num2 = 6
if (num1 > num2)
//true

// або на зразок цього
if (num1 > num2) //false

Ми також можемо об'єднати декілька умов одночасно за допомогою логічних операторів:

int num1 = 8
int num2 = 6;
if(num1 > num2 && num1==8)
{
//false
}

У цьому випадку блок if буде виконано, якщо num1 > num2 істинно і num1==8 істинно.

Вираз else

Але що, якщо ми хочемо, щоб якась дія виконувалась і тоді, коли умова не виконується? У цьому випадку ми можемо додати блок else:

int num1 = 8
int num2 = 6;
if(num1 > num2)
{
//істина
}
else
{
//false
}

Блок else виконується, якщо умова після if є хибною, тобто дорівнює false. Якщо блок else містить лише одну інструкцію, його можна скоротити, прибравши фігурні дужки:

int num1 = 8
int num2 = 6;
if(num1 > num2)
//true
else
//false

else if

Але у вищенаведеному прикладі при порівнянні чисел ми можемо розглядати три стани: перше число більше за друге, перше число менше за друге і числа рівні. Використовуючи конструкцію else if, ми можемо обробляти додаткові умови:

int num1 = 8
int num2 = 6
if(num1 > num2)
{
//істина
}
else if (num1 < num2)
{
//false
}
else
{
//
}

Якщо потрібно, ви можете додати більше одного виразу else if:

рядок name = «Alex»;

if (name == «Tom»)
//false
else if (name == «Bob»)
//false
else if (name == «Mike»)
//false
else
//істина

Тернарна операція

Тернарна операція також дозволяє перевірити деяку умову і, в залежності від її істинності, виконати певні дії. Вона має наступний синтаксис:

[перший операнд - умова] ? [другий операнд] : [третій операнд].

Тут відразу три операнди. Залежно від умови, тернарна операція повертає другий або третій операнд: якщо умова істинна, повертається другий операнд; якщо умова хибна, повертається третій операнд. Наприклад:

int x=3
int y=2

int z = x < y ? (x+y) : (x-y);

Тут перший операнд (тобто умова) являє собою вираз x < y. Якщо вона істинна, повертається другий операнд, (x+y), тобто результат операції додавання. Якщо умова має значення false, повертається третій операнд - (x-y).

Результат потрійної операції (тобто другий або третій операнд в залежності від умови) присвоюється змінній z.