Умовні оператори служать для розгалуження програми. В залежності від деякої умови виконується той чи інший набір команд. В Сі-шарп є три умовних оператора: if-else», «switch» і «?:» - тернарний оператор.

Оператор «if-else»

Цей оператор має наступну структуру:


if ([вираз])
{
Блок коду, який потрібно виконати при задоволенні умови, [вираз] = true (істина)
}
else
{
Блок коду, який потрібно виконати при незадоволенні умови, [вираз] = false (брехня)
}

Частина else не є обов'язковою і може бути відсутнім. Приклад використання оператора if-else» в програмі, яка перевіряє число на парність:

static void Main(string[] args)
{
int a;
Console.WriteLine("Введіть число:");
a = Convert.ToInt32(Console.ReadLine()); // вводимо дані з клавіатури*
if (a % 2 == 0) //перевіряємо число на парність шляхом знаходження залишку від ділення числа на 2
{
Console.WriteLine("Число" + a + "- парне");
}
else
{
Console.WriteLine("Число" + a + "- непарне");
}
Console.ReadKey();
}

Результат роботи програми:

* Функція Console.ReadLine() дозволяє ввести дані з клавіатури. Дані вводяться як рядок, а так як потрібно число, ми перетворюємо її у числовий тип. Для перетворення ми використовуємо функцію Convert.ToInt32(). Якщо після else if або необхідно виконати лише одну команду, фігурні дужки можна опускати:


if ([вираз])
[command1] // command1 виконається лише якщо умовний вираз істинно
[command2]// command2 виконається в будь-якому випадку

Оператор if може мати кілька умов:

if ([логическое выражение1])
{блок1}
else if ([логическое выражение2])
{блок2}
else
{блок3}

Приклад програми, яка визначає, яке з двох введених чисел більше:

static void Main(string[] args)
{
int a, b;
Console.WriteLine("Введіть перше число:");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введіть друге число:");
b = Convert.ToInt32(Console.ReadLine());
if (a > b)
Console.WriteLine("Перше число більше другого");
else if (a < b)
Console.WriteLine("Друге число більше від першого");
else
Console.WriteLine("рівні");

Console.ReadKey();
}

Результат роботи програми:

Логічний вираз можуть бути складнішими. Тут і використовуються логічні оператори «!», «||» і «&&».




Приклад програми, яка дає пораду, що робити, в залежності від температури на дворі:

static void Main(string[] args)
{
int t;
Console.WriteLine("Введіть температуру у дворі");
t = Convert.ToInt32(Console.ReadLine());
if (t < -20 || t > 40) //якщо температура менше 20 або більше 40
Console.WriteLine("Вам краще посидіти вдома!");
else
Console.WriteLine("Можете йти гуляти");
Console.ReadKey();
}

Результат роботи програми:







Оператор switch

У деяких випадках зручно використовувати умовний оператор «switch» замість «if-else». Він має наступну структуру:

switch (вираз)
{
case значення1: 
блок1;
break;
case значення2: 
блок2; 
break;
... 
case значенняn: 
блокN; 
break; 
default: 
блокN+1;
break;
}

Вираз послідовно порівнюється зі значеннями. Якщо вираз дорівнює значенню – виконується відповідний блок коду і при досягненні ключового слова break оператор switch закінчує роботу. Якщо вираз не буде відповідати жодному значенням, тоді виконається блок після default.

Приклад програми з використанням switch, яка виводить на екран назву дня тижня відповідно вводиться порядковому номері дня:

static void Main(string[] args)
{
int a;
Console.WriteLine("Введіть порядковий номер дня тижня:");
a = Convert.ToInt32(Console.ReadLine());
switch (a)
{
case 1:
Console.WriteLine("Понеділок");
break;
case 2:
Console.WriteLine("Вівторок");
break;
case 3:
Console.WriteLine("Середa");
break;
case 4:
Console.WriteLine("Четвер");
break;
case 5:
Console.WriteLine("П'ятниця");
break;
case 6:
Console.WriteLine("Субота");
break;
case 7:
Console.WriteLine("Неділя");
break;
default :
Console.WriteLine("Помилка");
break;
}
Console.ReadKey();
}

Результат роботи програми:







Тернарний оператор «?:»

Цей оператор використовується для скорочення обсягу коду. Їм можна замінювати прості за складністю оператори if-else. Тернарний оператор має таку структуру:

логічний вираз ? вираз1 : вираз2

Спочатку обчислюється логічний вираз. Якщо воно істинне, то обчислюється вираз 1, в іншому випадку - обчислюється вираз 2.

Приклад використання тернарного оператора «?:» у тій же програмі для перевірки числа на парність:

static void Main(string[] args)
{
int a;
Console.WriteLine("Введіть число:");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine( a % 2 == 0 ? "Парне Число" : "непарне Число" );
Console.ReadKey();
}

Результат роботи програми:

«?:» також можна використовувати для присвоювання значень.





Приклад програми, яка знаходить більше число з двох:


static void Main(string[] args)
{
int a, b, max;
Console.WriteLine("Введіть перше число:");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введіть друге число:");
b = Convert.ToInt32(Console.ReadLine());
max = a > b ? a : b; 
Console.WriteLine(max);
}

Результат роботи програми:







Автор Swytos                                              << попереднянаступна >>                                                 До змісту


2016-05-27 • Просмотров [ 111 ]