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 = "Воскресенье";

 


Связанные темы