Logo
Section 1 / 6

如果-否则语句

本节课详细讨论了if-else语句,包括嵌套if语句以及if-else if-else语句,并通过示例进行说明。

导入

如果-否则语句

本节课详细讨论了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。
  • 如果输入的分数是 110,输出为:错误:分数大于 100!

  • 如果输入的分数是 -20,输出为:错误:分数小于 0!

至此,我们完成了对 if-else 语句的讲解。接下来请学习 switch 语句!

运算符

开关语句