C# if, if...else, if...else if 和嵌套 if 语句
C# if, if...else, if...else if 和嵌套 if 语句
在本文中,我们将学习如何使用 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
}
- 布尔表达式将返回 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} 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 语句如何工作?
<图>
示例 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 语句从 top 开始执行 到底部 .只要测试表达式是 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 < 5 是 false ,因此控件将移动到 else if 块。测试表达式number > 5 是 true 因此 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
C语言