C# if、if...else、if...else if及嵌套if语句
- 基础 if 语句:C# 中的基础 if 语句用于在布尔表达式为真时执行一段代码。
- if...else 和 if...else if 结构:if...else 语句在条件为假时执行另一段代码,而 if...else if 结构用于多条件判断,每个条件对应不同的代码块。
- 嵌套 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 语句是如何工作的?
示例 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 语句是如何工作的?
示例 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 < 5
为 false
,因此控制将转移到 else if 块。测试表达式 number > 5
为 true
,因此 else if 内的代码块将被执行。
同样,我们可以更改 number
的值来改变执行流程。
嵌套 if...else 语句
一个 if...else 语句可以存在于另一个 if...else 语句中。这样的语句被称为嵌套 if...else 语句。
嵌套 if…
else 语句的一般结构是:
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 是最大的