C#提供了许多决策语句,这些语句可根据某些逻辑条件帮助C#程序的流程。在这里,您将了解if,else if,else和嵌套的if else语句,以根据条件控制流程。
C#包含以下几种if语句:
if 语句
else-if 语句
else 语句
if 语句包含一个布尔条件,后跟要执行的单行或多行代码块。在运行时,如果布尔条件评估为true,则将执行代码块,否则不执行。
if(condition) { //if 条件为真时要执行的代码块 }
int i = 10, j = 20; if (i < j) { Console.WriteLine("i小于j"); } if (i > j) { Console.WriteLine("i大于j"); }
i小于j
在上面的示例中,第一条 if 语句中的布尔条件 i < j 求值为true,因此C#编译器将执行以下代码块。第二条if语句的条件 i > j 评估为false,因此编译器将不会执行其代码块。
条件表达式必须返回布尔值,否则C#编译器将给出编译时错误。
int i = 10, j = 20; if (i + 1) { Console.WriteLine("i is less than j"); } if (i + j) { Console.WriteLine("i is greater than j"); }
您可以在 if 语句中调用一个返回布尔值的函数。
static void Main(string[] args) { int i = 10, j = 20; if (isGreater(i, j)) { Console.WriteLine("i is less than j"); } if (isGreater(j, i)) { Console.WriteLine("j is greater than i"); } } static bool isGreater(int i, int j) { return i > j; }
在if语句之后可以使用多个else if语句。它只在if条件的计算结果为false时执行。因此,if语句或else if语句之一可以执行,但不能同时执行。
if(condition1) { //如果condition1评估为true时要执行的代码块 } else if(condition2) { // 何时执行的代码块 // condition1计算为flase // condition2计算为true } else if(condition3) { // 何时执行的代码块 // condition1计算为flase // condition2计算为false // condition3计算为true }
下面的示例演示else if语句。
int i = 10, j = 20; if (i == j) { Console.WriteLine("i等于j"); } else if (i > j) { Console.WriteLine("i大于j"); } else if (i < j) { Console.WriteLine("i小于j"); }
i小于j
else语句只能在if或else if语句之后出现,并且只能在if-else语句中使用一次。else语句不能包含任何条件,并且将在前面所有if和else if条件的计算结果都为false时执行。
int i = 20, j = 20; if (i > j) { Console.WriteLine("i 大于 j"); } else if (i < j) { Console.WriteLine("i 小于 j"); } else { Console.WriteLine("i 等于 j"); }
i等于j
C支持另一个if-else语句中的if-else语句。这称为嵌套的if-else语句。嵌套的if语句使代码更具可读性。
if(condition1) { if(condition2) { // 何时执行的代码块 // condition1和condition2计算为true } else if(condition3) { if(condition4) { // 何时执行的代码块 // 只有condition1,condition3和condition4的计算结果为true } else if(condition5) { // 何时执行的代码块 // 只有condition1,condition3和condition5的计算结果为true } else { // 何时执行的代码块 // condition1和condition3评估为true // condition4和condition5的计算结果为false } } }
下面的示例演示了嵌套if else语句。
int i = 10, j = 20; if (i != j) { if (i < j) { Console.WriteLine("i小于j"); } else if (i > j) { Console.WriteLine("i大于j"); } }else{ Console.WriteLine("i等于j"); }
i小于j
使用三元运算符?:代替简单的if else语句。