如果-否则语句
本节课详细讨论了if-else语句,包括嵌套if语句以及if-else if-else语句,并通过示例进行说明。
编程通常需要在代码中做出决策或分支,以应对不同输入或条件下的程序运行情况。
在 C# 编程语言中,创建程序分支最简单且有时最实用的方法是使用 If-Else 语句。
If-Else 块
与大多数 C# 语法一样,if 语句的语法与 C、C++ 和 Java 相同。其写法如下:
1if (condition) 2{ 3 // 执行某些操作 4} 5else 6{ 7 // 执行其他操作 8}
注意: 这两个执行部分是互斥的。这意味着根据布尔表达式的计算结果,两个部分中只有一个会执行。
if 语句会评估其条件表达式,以决定是否执行 if 体内的代码。可选地,在 if 体之后可以立即添加一个 else 子句,当条件为 false 时执行相应的代码。
If-Else 示例
让我们看一个实现 if-else 语句的示例。
在下面的例子中,你将输入一门科目的分数,程序将根据分数输出你是否通过了课程。
重要提示: 运行代码前请先在标准输入中提供任意分数值;如果没有先输入数值,程序会出现运行时错误。
1using System; 2 3class IfElseExample 4{ 5 static void Main() 6 { 7 double score; 8 score = double.Parse(Console.ReadLine()); 9 Console.WriteLine("你的分数: {0}", score); 10 if (score >= 50) // 如果分数大于等于 50 11 { 12 Console.WriteLine("通过!"); 13 } 14 else // 如果分数小于 50 15 { 16 Console.WriteLine("失败!"); 17 } 18 } 19}
代码说明
在这个例子中:
- 我们首先通过控制台输入一个分数。
- 第 8 行将输入的字符串解析并转换为
double类型。 - 第 10 行的
score >= 50是if语句中的条件。- 这是一个布尔条件,如果该条件为
true,则if { }中的代码将被执行。
- 这是一个布尔条件,如果该条件为
- 如果输入的分数是 60,输出将是 通过!,因为 60 大于等于 50。
- 如果输入的分数是 30,输出将是 失败!,因为 30 不大于也不等于 50,因此会执行
else { }中的代码。
嵌套 If
在这种结构中,一个 if-else 块被嵌套在另一个 if-else 块内部。需要注意的是,必须先关闭内层的 if,再关闭外层的 if。
1if (condition1) 2{ 3 // 执行语句 4 if (condition2) 5 { 6 // 执行语句 7 } 8 else 9 { 10 // 执行语句 11 } 12} 13else 14{ 15 // 执行语句 16}
在上述代码块中:
- 如果
condition1为true,则执行对应的语句后,程序进入condition2的判断。- 根据
condition2的结果,执行嵌套的if或else中的语句。
- 根据
- 如果
condition1为false,则程序跳转到第 13 行的else语句,执行该else中的代码。
Else-If 语句
这是 if-else 语句的复杂嵌套形式。这里的 else 被一个或多个 else-if 语句替代,最后还可以选择性地添加一个 else 语句。
让我们通过下面的例子来更好地理解嵌套 if 的概念。
在这个例子中,我们将前面的“分数测试”示例进行改进,加入更多判断条件,使用嵌套 if 实现。
重要提示: 运行代码前请先为程序提供分数输入值。
1using System; 2 3class NestedifExample 4{ 5 static void Main() 6 { 7 double score; 8 score = double.Parse(Console.ReadLine()); // 从命令行读取分数并转换为 double 类型 9 Console.WriteLine("你的分数: {0}", score); 10 if (score > 100) // 如果分数大于 100 11 { 12 Console.WriteLine("错误:分数大于 100!"); 13 } 14 else if (score < 0) // 否则如果分数小于 0 15 { 16 Console.WriteLine("错误:分数小于 0!"); 17 } 18 else if (score >= 50) // 否则如果分数大于等于 50 19 { 20 Console.WriteLine("通过!"); 21 } 22 else // 如果以上都不满足,则分数应在 0 到 49 之间 23 { 24 Console.WriteLine("失败!"); 25 } 26 } 27}
代码说明
-
上述代码中的所有语句将按顺序从上到下执行,直到某个条件被满足为止。
-
在这个更新版本中,我们新增了两个判断分支:
- 第 10 行检查
score是否大于 100。 - 第 14 行检查
score是否小于 0。
- 第 10 行检查
-
如果输入的分数是 110,输出为:错误:分数大于 100!
-
如果输入的分数是 -20,输出为:错误:分数小于 0!
至此,我们完成了对 if-else 语句的讲解。接下来请学习 switch 语句!