跳到主要内容

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

提示
  1. 基础 if 语句:C# 中的基础 if 语句用于在布尔表达式为真时执行一段代码。
  2. if...else 和 if...else if 结构:if...else 语句在条件为假时执行另一段代码,而 if...else if 结构用于多条件判断,每个条件对应不同的代码块。
  3. 嵌套 if 语句:嵌套 if 语句允许在一个 if 或 else 代码块内部再嵌套其他 if...else 结构,用于更复杂的条件判断。

在编程中,测试条件是不可避免的。我们经常会面临需要测试条件(判断它是 true 还是 false)以控制程序流程的情况。这些条件可能受用户输入、时间因素、程序运行的当前环境等因素的影响。

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

C# if (if-then) 语句

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

if (布尔表达式)
{
// 如果布尔表达式为 true 时执行的语句
}

  • 布尔表达式将返回 true 或 false
  • 如果布尔表达式返回 true,if 语句的主体内的语句(在 {...} 内)将被执行。
  • 如果布尔表达式返回 false,if 语句的主体内的语句将被忽略。

例如,

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

在这个示例中,语句

number += 5;

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

还记得+= 操作符吗?

if 语句是如何工作的?

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} 小于 5", number);
}

Console.WriteLine("这条语句总是被执行。");
}
}
}

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

2 小于 5
这条语句总是被执行。

number 的值初始化为 2。因此表达式 number < 5 被评估为 true。因此,if 块内的代码被执行。无论表达式如何,if 语句后的代码总是会被执行。

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

这条语句总是被执行。

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

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

C# 中的 if 语句可以有一个可选的 else 语句。如果表达式被评估为 false,else 语句内的代码块将被执行。

C# 中 if...else 语句的语法是:

if (布尔表达式)
{
// 如果布尔表达式为 true 时执行的语句
}
else
{
// 如果布尔表达式为 false 时执行的语句
}

例如,

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

在这个示例中,语句

number += 5;

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

语句

number -= 5;

将在 number 的值大于或等于 5 时执行。

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

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} 小于 5", number);
}
else
{
Console.WriteLine("{0} 大于或等于 5", number);
}

Console.WriteLine("这条语句总是被执行。");
}
}
}

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

12 大于或等于 5
这条语句总是被执行。

这里,number 的值初始化为 12。所以表达式 number < 5 被评估为 false。因此,else 块内的代码被执行。无论表达式如何,if..else 语句后的代码总是会被执行。

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

2 小于 5
这条语句总是被执行。

表达式 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 (布尔表达式-1)
{
// 如果布尔表达式-1 为 true 时执行的语句
}
else if (布尔表达式-2)
{
// 如果布尔表达式-2 为 true 时执行的语句
}
else if (布尔表达式-3)
{
// 如果布尔表达式-3 为 true 时执行的语句
}
.
.
.
else
{
// 如果所有上述表达式都为 false 时执行的语句
}

if...else if 语句从执行。一旦测试表达式为 true,该 if(或 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} 小于 5", number);
}
else if (number > 5)
{
Console.WriteLine("{0} 大于 5", number);
}
else
{
Console.WriteLine("{0} 等于 5", number);
}
}
}
}

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

12 大于 5

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

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

嵌套 if...else 语句

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

嵌套 ifelse 语句的一般结构是:

if (布尔表达式)
{
if (嵌套表达式-1)
{
// 要执行的代码
}
else
{
// 要执行的代码
}
}
else
{
if (嵌套表达式-2)
{
// 要执行的代码
}
else
{
// 要执行的代码
}
}

嵌套 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 (first > third)
{
Console.WriteLine("{0} 是最大的", first);
}
else
{
Console.WriteLine("{0} 是最大的", third);
}
}
else
{
if (second > third)
{
Console.WriteLine("{0} 是最大的", second);
}
else
{
Console.WriteLine("{0} 是最大的", third);
}
}
}
}
}

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

13 是最大的