Looking for c# Keywords? Try Ask4Keywords

C# Language if, if ... else, if ... else if


пример


Оператор if используется для управления потоком программы. Оператор if определяет, какой оператор запускаться на основе значения Boolean выражения.

Для одного оператора braces {} являются необязательными, но рекомендуется.

int a = 4;
if(a % 2 == 0) 
{
     Console.WriteLine("a contains an even number");
}
// output: "a contains an even number"

if также может иметь предложение else , которое будет выполнено в случае, если условие принимает значение false:

int a = 5;
if(a % 2 == 0) 
{
     Console.WriteLine("a contains an even number");
}
else
{
     Console.WriteLine("a contains an odd number");
}
// output: "a contains an odd number"

Конструкция if ... else if позволяет задать несколько условий:

int a = 9;
if(a % 2 == 0) 
{
     Console.WriteLine("a contains an even number");
}
else if(a % 3 == 0) 
{
     Console.WriteLine("a contains an odd number that is a multiple of 3"); 
}
else
{
     Console.WriteLine("a contains an odd number");
}
// output: "a contains an odd number that is a multiple of 3"

Важно отметить, что если в приведенном выше примере выполняется условие, элемент управления пропускает другие тесты и переходит к концу этой конкретной, если else конструирует. Таким образом, порядок тестов важен, если вы используете if .. else if construct

C # Булевы выражения используют оценку короткого замыкания . Это важно в тех случаях, когда оценка условий может иметь побочные эффекты:

if (someBooleanMethodWithSideEffects() && someOtherBooleanMethodWithSideEffects()) {
  //...
}

Нет гарантии, что someOtherBooleanMethodWithSideEffects будут работать.

Это также важно в тех случаях, когда более ранние условия гарантируют, что он «безопасен» для оценки более поздних. Например:

if (someCollection != null && someCollection.Count > 0) {
   // ..
}

Порядок очень важен в этом случае, потому что, если мы отменим порядок:

if (someCollection.Count > 0 && someCollection != null) {

он выкинет NullReferenceException если someCollection равен null .