C# 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条款,将在案件条件的计算结果来执行错误:

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"

需要注意的重要一点是,如果在上面的示例中满足条件,则控件会跳过其他测试并跳至特定的if else构造的末尾。因此,如果您使用if .. else if构造,则测试的顺序很重要。

C#布尔表达式使用短路评估。在评估条件可能会有副作用的情况下,这一点很重要:

if (someBooleanMethodWithSideEffects() && someOtherBooleanMethodWithSideEffects()) {

  //...

}

无法保证someOtherBooleanMethodWithSideEffects将实际运行。

在较早的条件下确保对以后的条件进行“安全”评估的情况下,这一点也很重要。例如:

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

   // ..

}

在这种情况下,顺序非常重要,因为如果我们颠倒顺序:

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

它将抛出一个NullReferenceExceptionif someCollectionis null。

以上是 C# if, if...else, if... else if 的全部内容, 来源链接: utcz.com/z/315827.html

回到顶部