C# - if, else if, else 语句

本文关键字:else if 语句 | 更新日期: 2023-09-12 17:38:54

C# 提供了许多决策语句,这些语句有助于基于某些逻辑条件的 C# 程序的流程。 在这里,您将了解 if、else if、else 和嵌套的 if else 语句,以根据条件控制流。

C# 包括以下风格的 if 语句:

  1. if 语句
  2. else-if 语句
  3. else 语句

C# if 语句

if 语句包含一个布尔条件,后跟要执行的单行或多行代码块。 在运行时,如果布尔条件的计算结果为 true,则将执行代码块,否则不执行。

语法:
if(condition)
{
    // code block to be executed when if condition evaluates to true
}
int i = 10, j = 20;
if (i < j)
{
    Console.WriteLine("i is less than j");
}        
if (i > j)
{
    Console.WriteLine("i is greater than j");
}

输出:

i is less than 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;                    
}

else if 语句

if语句后可以使用多个else if语句。 仅当if条件的计算结果为 false 时,才会执行它。因此,可以执行if语句或else if语句之一,但不能同时执行两者。

语法:
if(condition1)
{
    // code block to be executed when if condition1 evaluates to true
}
else if(condition2)
{
    // code block to be executed when 
    //      condition1 evaluates to flase
    //      condition2 evaluates to true
}
else if(condition3)
{
    // code block to be executed when 
    //      condition1 evaluates to flase
    //      condition2 evaluates to false
    //      condition3 evaluates to true
}

下面的示例演示else if语句。

int i = 10, j = 20;
if (i == j)
{
    Console.WriteLine("i is equal to j");
}
else if (i > j)
{
    Console.WriteLine("i is greater than j");
}
else if (i < j)
{
    Console.WriteLine("i is less than j");
}

输出:

i is less than j

else 语句

else语句只能在ifelse if语句之后出现 并且只能在if-else语句中使用一次。 else 语句不能包含任何条件,并且将在所有先前的ifelse if条件的计算结果为 false 时执行。

int i = 20, j = 20;
if (i > j)
{
    Console.WriteLine("i is greater than j");
}
else if (i < j)
{
    Console.WriteLine("i is less than j");
}
else
{
    Console.WriteLine("i is equal to j");
}

输出:

i is equal to j

嵌套 if 语句

C# 支持在另一个语句中if else语句if else语句。这称为嵌套if else语句。 嵌套的 if 语句使代码更具可读性。

语法:
if(condition1)
{
   if(condition2)
    {
        // code block to be executed when 
        //      condition1 and condition2 evaluates to true
    }
    else if(condition3)
    {
        if(condition4)
        {
            // code block to be executed when 
            //      only condition1, condition3, and condition4 evaluates to true
        }
        else if(condition5)
        {
            // code block to be executed when 
            //      only condition1, condition3, and condition5 evaluates to true
        }
        else
        {
            // code block to be executed when 
            //      condition1, and condition3 evaluates to true 
            //      condition4 and condition5 evaluates to false
        }
    }
}

下面的示例演示嵌套的 if else 语句。

int i = 10, j = 20;
if (i != j)
{
    if (i < j)
    {
        Console.WriteLine("i is less than j");
    }
    else if (i > j)
    {
       Console.WriteLine("i is greater than j");
    }
}
else
    Console.WriteLine("i is equal to j");
   

输出:

i is less than j

使用 Ternary 运算符 ?: 而不是简单的 if else 语句。