Разветвляющиеся алгоритмы и их описание на языке С#.
Условный оператор
В языке C# используются следующие условные
конструкции: if..else и switch..case
Конструкция if/else
Конструкция if/else проверяет истинность условия и в
зависимости от результатов проверки выполняется
определенный код ( неполная форма условного оператора ):
if( условие )
{
операторы;
}
Если условие истинно, то выполняется код, стоящий в
фигурных скобках (в блоке). Если условие ложно, то
выполняется следующий оператор после условного.
num2) { Console.WriteLine($" Число {num1} больше числа {num2}"); } " width="640"
Полная форма условного оператора:
if( условие )
{
операторы;
}
else
{
операторы;
}
Выполнение : если условие истинно, выполняется блок
после условия, а если ложно, то блок после else.
Примеры:1) int num1 = 8;
int num2 = 6;
if(num1 num2)
{
Console.WriteLine($" Число {num1} больше числа {num2}");
}
num2) { Console.WriteLine($" Число {num1} больше числа {num2}"); } else { Console.WriteLine($" Число {num1} меньше числа {num2}"); } 3) int num1 = 8; int num2 = 6; if(num1 num2) { Console.WriteLine($" Число {num1} больше числа {num2}"); } else if (num1 " width="640"
2)
int num1 = 8;
int num2 = 6;
if(num1 num2)
{
Console.WriteLine($" Число {num1} больше числа {num2}");
}
else
{
Console.WriteLine($" Число {num1} меньше числа {num2}");
}
3)
int num1 = 8;
int num2 = 6;
if(num1 num2)
{
Console.WriteLine($" Число {num1} больше числа {num2}");
}
else if (num1
{
Console.WriteLine($" Число {num1} меньше числа {num2}");
}
else
{
Console.WriteLine(" Число num1 равно числу num2");
}
num2 && num1==8) { Console.WriteLine($" Число {num1} больше числа {num2}"); } В данном случае блок if будет выполняться, если num1 num2 равно true и num1==8 равно true. " width="640"
Можно соединить сразу несколько условий, используя
логические операторы:
int num1 = 8;
int num2 = 6;
if(num1 num2 && num1==8)
{ Console.WriteLine($" Число {num1} больше числа {num2}");
}
В данном случае блок if будет выполняться, если
num1 num2 равно true и num1==8 равно true.
Конструкция switch
Данная конструкция - оператор выбора или переключатель.
Позволяет обрабатывать несколько условий.
Синтаксис:
switch(x)
{ case 'value1': оператор1;
[break]
case 'value2': оператор2;
[break]
…
default: оператор
[break] }
Где x – константное выражение.
Сначала вычисляется константное выражение. Полученное
значение сравнивается со значением value1. Если это
значение совпадает с value1 , то выполняется оператор в
этой строке до следующего case ( блок case ) . Если не
совпадает, то сравнение идет с value2 и так далее, если
нет таких значений, то выполняется оператор с меткой
default.
В конце каждого блока сase должен ставиться один и
операторов перехода: break , goto case , return или throw .
Обычно используется оператор break . При его
применении другие блоки case выполняться не будут.
Если после выполнения текущего блока case необходимо
выполнение другого блока case , то нужно использовать
вместо break оператор goto case .
int number = 1;
switch (number)
{
case 1:
Console.WriteLine("case 1");
goto case 5; // переход к case 5
case 3:
Console.WriteLine("case 3");
break;
case 5:
Console.WriteLine("case 5");
break;
default:
Console.WriteLine("default");
break;
}
Применение оператора return позволит выйти не только из блока case , но и из вызывающего метода. То есть, если в методе Main после конструкции switch..case , в которой используется оператор return, идут какие-либо операторы и выражения, то они выполняться не будут, а метод Main завершит работу.
Оператор throw применяется в обработчиках ошибок.
Тернарная операция
Синтаксис:
[первый операнд - условие] ? [второй операнд] : [третий
операнд];
Здесь сразу три операнда. В зависимости от условия
тернарная операция возвращает второй или третий
операнд: если условие равно true, то возвращается второй
операнд; если условие равно false, то третий.
Например:
int x=3;
int y=2;
Console.WriteLine(" Нажмите + или -");
string selection = Console.ReadLine();
int z = selection=="+"? (x+y) : (x-y);
Console.WriteLine(z);