Умовні оператори служать для розгалуження програми. В залежності від деякої умови виконується той чи інший набір команд. В Сі-шарп є три умовних оператора: 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 << попередня • наступна >> До змісту