C# if、if...else、if...else if 和嵌套 if 语句

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

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


C# if(if-then)语句

C# if-then 语句将在给定条件为 true 时执行一段代码。C# 中 if-then 语句的语法是:

if (boolean-expression)
{
	// statements executed if boolean-expression is true
}
  • boolean-expression 将返回truefalse
  • 如果 boolean-expression 返回true,则 if 块中的语句(在{...}内)将被执行。
  • 如果 boolean-expression 返回false,则 if 块中的语句将被忽略。

例如,

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

在此示例中,语句

number += 5;

只有在 number 的值小于 5 时才会被执行。

还记得 += 运算符吗?

if 语句如何工作?

How if statement works in C#?
C# if 语句的工作原理

示例 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,则会执行。

if...else 语句如何工作?

How if else statement works in C#?
if...else 语句的工作原理

示例 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 块内的代码将被执行。

C# 中的三元运算符为 C# if...else 语句提供了一种快捷方式。


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(或 else if)块内的代码就会被执行。然后控制会跳出 if...else if 块。

如果所有表达式都为false,则 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 if 内的代码块将被执行。

同样,我们可以更改 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
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战