C#. Оператор умовного переходу if

Оператор умовного переходу if


Зміст


1. В яких випадках доцільно застосовувати оператор умовного переходу?

Оператор умовного переходу застосовується у випадках, коли хід рішення задачі залежить від виконання (невиконання) деякої умови. В мові C# існує дві форми оператора умовного переходу:

  • повна форма if … else … ;
  • скорочена форма if … .

 


2. Який вигляд має повна форма оператора умовного переходу if?

Повна форма оператора умовного переходу if:

if (умова) 
    оператор1;
else 
    оператор2;

де умова – це деякий умовний вираз, а оператор1 та оператор2 – адресати операторів if та else. Оператор else не є обов’язковим. Якщо результат умови рівний true (умова виконується), то виконується оператор1. В іншому випадку виконується оператор2.

Після if та else може бути декілька операторів. У цьому випадку вони беруться в операторні дужки:

if (умова)
{
    // декілька операторів
    ...
}
else
{
    // декілька операторів
    ...
}

 


3. Який вигляд має скорочена форма оператора умовного переходу?

Скорочена форма оператора умовного переходу if:

if (умова) оператор;

У цьому випадку оператор виконується, якщо виконується умова (рівна true). Якщо значення умови рівне false, то нічого не виконується.

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

if (умова)
{
    // декілька операторів
}

 


4. Приклади використання оператора if, що має повну форму представлення.

Приклад 1. Дано два числа x та y. Написати фрагмент коду, що знаходить максимальне значення між цими числами.

double x, y, max;

x = 5;
y = -3;

if (x > y)
    max = x;
else
    max = y;
// після виконання max = 5

Приклад 2. Дано два дійсних числа x та y. Визначити x/y передбачивши можливе ділення на нуль з виводом повідомлення “Ділення на нуль“.

double x, y, res;

x = 5;
y = 0;

// перевірка ділення на нуль
if (y == 0)
    label1.Text = "Ділення на нуль";
else
{
    res = x / y;
    label1.Text = res.ToString();
}

Приклад 3. Визначити, чи потрапляє значення цілої величини a у відрізок [x; y], де x, y – цілі числа.

...

double x, y, a;

x = 3;
y = 9;
a = 8;

if ((x<=a)&&(a<=y))
    label1.Text = "Потрапляє";
else
    label1.Text = "Не потрапляє";

...

 


5. Приклади використання оператора if, що має скорочену форму представлення.

Приклад 1. Задача з пункту 4. Дано два числа x та y. Написати фрагмент коду, що знаходить максимальне значення між цими числами.

double x, y, max;

x = 33;
y = 9;

// інший метод пошуку максимального значення
max = x;
if (max < y) max = y; // скорочена форма оператора if
label1.Text = max.ToString();

Приклад 2. Дано дійсне число x. Знайти максимальне значення виразів:

  • 3 + sin(x)
  • 1 + x
  • 4 – x2

Фрагмент коду:

double x, r1, r2, r3;
double max; // максимальне значення

x = 2;
r1 = 3 + Math.Sin(x);
r2 = 1 + x;
r3 = 4 - x * x;

max = r1;
if (max < r2) max = r2; // оператор if
if (max < r3) max = r3;

label1.Text = max.ToString();

 


6. Приклади застосування вкладених операторів if.

Оператор if-else може містити інший оператор if-else.

Приклад 1. Застосування вкладених операторів у повній формі оператора if.

Написати фрагмент коду, що виводить у спадному порядку значення трьох змінних x, y, z.

...

double x, y, z;

x = 22;
y = 88;
z = 2;

// вкладені оператори if
if (x > y)
{
    if (x > z)
    {
        if (y > z) // x - y - z
            label1.Text = x.ToString() + ";" + y.ToString() + "; " + z.ToString();
        else // x - z - y
            label1.Text = x.ToString() + ";" + z.ToString() + "; " + y.ToString();
    }
    else // z - x - y
        label1.Text = z.ToString() + "; " + x.ToString() + "; " + y.ToString();
}
else
{
    if (y > z)
    {
        if (x > z) // y - x - z
            label1.Text = y.ToString() + "; " + x.ToString() + "; " + z.ToString();
        else // y - z - x
            label1.Text = y.ToString() + "; " + z.ToString() + "; " + x.ToString();
    }
    else // z - y - x
        label1.Text = z.ToString() + "; " + y.ToString() + "; " + x.ToString();
}

Приклад 2. Застосування вкладених операторів у скороченій формі оператора if. Розв’язок прикладу 1 іншим методом.

...

double x, y, z;

x = 7;
y = 6;
z = 8;

// повна + скорочена форма оператора if + вкладені оператори
if (x > y)
{
    if (y > z) // z - y - z
        label1.Text = x.ToString() + ";" + y.ToString() + "; " + z.ToString();
    if (y <= z)
    {
        if (x > z) // x - z - y
            label1.Text = x.ToString() + ";" + z.ToString() + "; " + y.ToString();
        if (x <= z) // z - x - y
            label1.Text = z.ToString() + "; " + x.ToString() + "; " + y.ToString();
    }
}
else
{
    if (y < z) // z - y - z
        label1.Text = z.ToString() + "; " + y.ToString() + "; " + x.ToString();
    if (y >= z)
    {
        if (x>z) // y - x - z
            label1.Text = y.ToString() + "; " + x.ToString() + "; " + z.ToString();
        if (x<=z) // y - z - x
            label1.Text = y.ToString() + "; " + z.ToString() + "; " + x.ToString();
    }
}
...

 


7. Який вигляд та принцип роботи конструкції if-else-if?

Часто в програмах доцільним є застосування багатоступеневої конструкції

if - else - if

яка складається з вкладених операторів if.

Загальна форма конструкції:

if (умова1)
    оператор1;
else if (умова2)
    оператор2;
else if (умова3)
    оператор3;
    ...
else
    операторN;

У такій конструкції умовні вирази обчислюються за принципом зверху-вниз. Виконання здійснюється до тих пір, доки не виконається одна з умов.

Якщо умова1 рівна true, то виконується оператор1. Всі інші оператори пропускаються. Аналогічно, якщо істинна умова2, то виконується оператор2.

Якщо жодна з умов не виконується, то виконується операторN.

 


8. Приклад застосування конструкції if-else-if.

Дано ціле число n, що вказує номер дня тижня від 1 до 7. За вказаним номером n вивести назву відповідного дня тижня.

Фрагмент коду, що розв’язує дану задачу з використанням конструкції if-else-if:

int n;

n = 3;
if (n == 1)
    label1.Text = "Понеділок";
else
if (n == 2)
    label1.Text = "Вівторок";
else
if (n == 3)
    label1.Text = "Середа";
else
if (n == 4)
    label1.Text = "Четвер";
else
if (n == 5)
    label1.Text = "П'ятниця";
else
if (n == 6)
    label1.Text = "Субота";
else
    label1.Text = "Неділя";

 


Зв’язані теми