Конструкція 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.