📜  C#if,if … else,if … else if和嵌套if语句

📅  最后修改于: 2020-10-06 09:31:01             🧑  作者: Mango

在本文中,我们将学习如何使用C#中的if,if … else,if … else if语句来控制程序执行的流程。

在编程中不可避免地要测试条件。我们经常会遇到需要测试条件(无论是true还是false )来控制程序流程的情况。这些条件可能会受到用户输入,时间因素,程序正在运行的当前环境等的影响。

在本文中,我们将学习在C#中使用if语句测试条件。


C#if(if-then)语句

如果给定条件为真,则C#if-then语句将执行代码块。 C#中if-then语句的语法为:

if (boolean-expression)
{
    // statements executed if boolean-expression is true
}
  • 布尔表达式将返回truefalse
  • 如果boolean-expression返回true ,则将执行if(内部{...} )体内的语句。
  • 如果boolean-expression返回false ,则if体内的语句将被忽略。

例如,

if (number < 5)
{
    number += 5;
}

在此示例中,语句

number += 5;

仅当number的值小于5时才会执行。

还记得+ = 运算符吗?

如果语句如何工作?

How if statement works in C#?

示例1:C#if语句

using System;

namespace Conditional
{
    class IfStatement
    {
        public static void Main(string[] args)
        {
            int number = 2;
            if (number < 5)
            {
                Console.WriteLine("{0} is less than 5", number);
            }

            Console.WriteLine("This statement is always executed.");
        }
    }
}

当我们运行程序时,输出将是:

2 is less than 5
This statement is always executed.

number的值被初始化为2。因此,表达式number < 5被评估为true 。因此,将执行if块中的代码。 if语句之后的代码将始终与表达式无关地执行。

现在,将number的值更改为大于5 ,例如10 。当我们运行程序时,输出将是:

This statement is always executed.

表达式number < 5将返回false ,因此if块中的代码将不会执行。


C#if … else(if-then-else)语句

C#中的if语句可能具有可选的else语句。如果表达式的计算结果为false则将执行else语句中的代码块。

C#中if … else语句的语法为:

if (boolean-expression)
{
    // statements executed if boolean-expression is true
}
else
{
    // statements executed if boolean-expression is false
}

例如,

if (number < 5)
{
    number += 5;
}
else
{
    number -= 5;
}

在此示例中,语句

number += 5;

仅当number的值小于5才会执行。

该声明

number -= 5;

如果number的值大于或等于5将被执行。

如果… else语句如何工作?

How if else statement works in C#?

示例2:C#if … else语句

using System;

namespace Conditional
{
    class IfElseStatement
    {
        public static void Main(string[] args)
        {
            int number = 12;

            if (number < 5)
            {
                Console.WriteLine("{0} is less than 5", number);
            }
            else
            {
                Console.WriteLine("{0} is greater than or equal to 5", number);
            }

            Console.WriteLine("This statement is always executed.");
        }
    }
}

当我们运行程序时,输出将是:

12 is greater than or equal to 5
This statement is always executed.

这里, number的值初始化为12 。因此,表达式number < 5被评估为false 。因此,执行else块内的代码。 if..else语句之后的代码将始终与表达式无关地执行。

现在,将number的值更改为小于5 ,例如2 。当我们运行程序时,输出将是:

2 is less than 5
This statement is always executed.

表达式number < 5将返回true,因此if块中的代码将被执行。

如果… else语句,C#中的三元运算符为C#提供了快捷方式。


C#if … else if(if-then-else if)语句

当我们只有一个条件要测试时,if-then和if-then-else语句可以正常工作。但是,如果我们有多个条件来测试和执行众多代码块之一,该怎么办?

对于这种情况,我们可以在C#中使用if..else if语句。 if … else if语句的语法是:

if (boolean-expression-1)
{
    // statements executed if boolean-expression-1 is true
}
else if (boolean-expression-2)
{
    // statements executed if boolean-expression-2 is true
}
else if (boolean-expression-3)
{
    // statements executed if boolean-expression-3 is true
}
.
.
.
else
{
    // statements executed if all above expressions are false
}

该IF … ELSE if语句是从顶部 到底部执行。一旦测试表达式为true ,就会执行if(or else if)块内部的代码。然后控件跳出if … else if块。

如果所有表达式都不为true ,则执行else块中的代码。

或者,我们可以在这种情况下使用switch语句。

示例3:C#if … else if语句

using System;

namespace Conditional
{
    class IfElseIfStatement
    {
        public static void Main(string[] args)
        {
            int number = 12;

            if (number < 5)
            {
                Console.WriteLine("{0} is less than 5", number);
            }
            else if (number > 5)
            {
                Console.WriteLine("{0} is greater than 5", number);
            }
            else
            {
                Console.WriteLine("{0} is equal to 5");
            }
        }
    }
}

当我们运行程序时,输出将是:

12 is greater than 5

number的值初始化为12 。第一个测试表达式number < 5false ,因此控件将移至else if块。测试表达式number > 5true因此将执行else内部的代码块。

同样,我们可以更改number的值以更改执行流程。


嵌套if … else语句

一个if … else语句可以存在于另一个if … else语句中。这样的语句称为嵌套if … else语句。

嵌套if … else语句的一般结构为:

if (boolean-expression)
{
    if (nested-expression-1)
    {
        // code to be executed
    }
    else
    {
    // code to be executed
    }
}
else
{
    if (nested-expression-2)
    {
        // code to be executed
    }
    else
    {
        // code to be executed
    }
}

当我们必须先测试一个条件然后再测试另一个条件时,通常会使用嵌套的if语句。在嵌套的if语句中,如果外部if语句返回true,它将进入主体以检查内部if语句。

示例4:嵌套if … else语句

以下程序使用嵌套的if … else语句计算3个数字中的最大数字。

using System;
 
namespace Conditional
{
    class Nested
    {
        public static void Main(string[] args)
        {
            int first = 7, second = -23, third = 13;
            if (first > second)
            {
                if (firstNumber > third)
                {
                    Console.WriteLine("{0} is the largest", first);
                }
                else
                {
                    Console.WriteLine("{0} is the largest", third);
                }
            }
            else
            {
                if (second > third)
                {
                    Console.WriteLine("{0} is the largest", second);
                }
                else
                {
                    Console.WriteLine("{0} is the largest", third);
                }
            }
        }
    }
}

当我们运行程序时,输出将是:

13 is the largest