C语言选择结构(分支结构)有哪些?
C语言中的选择结构是一种控制流语句,它允许程序根据不同条件执行不同的代码块。这种结构使得程序能够根据不同的情况做出不同决策,从而实现更加灵活和智能的行为。
C语言中主要有三种选择结构:if 语句、if-else 语句和 switch 语句,每种结构都有其独特的特点和适用场景。我们将逐一介绍这些结构的语法、用法以及它们之间的区别。
1. if 语句
if 语句是最基本的选择结构,它用于在满足特定条件时执行一段代码。if 语句的基本语法如下:
if (条件) { // 如果条件为真,执行这里的代码 }
条件
是一个表达式,它的结果会被解释为真(非零值)或假(零值)。如果条件为真,大括号内的代码块将被执行;如果条件为假,程序将跳过这个代码块继续执行后面的代码。
让我们看一个简单的例子:
#include <stdio.h> int main() { int age = 18; if (age >= 18) { printf("你已经成年了。\n"); } return 0; }输出结果:
你已经成年了。
在这个例子中,如果 age 变量的值大于或等于 18,程序就会打印 "你已经成年了。" 的消息。
2. if-else 语句
if-else 语句是 if 语句的扩展,它允许我们在条件不满足时执行另一段代码。if-else 语句的基本语法如下:
if (条件) { // 如果条件为真,执行这里的代码 } else { // 如果条件为假,执行这里的代码 }
这种结构使得程序能够在两种不同的情况下执行不同的操作。让我们看一个例子:
#include <stdio.h> int main() { int score = 75; if (score >= 60) { printf("恭喜你及格了!\n"); } else { printf("很遗憾,你没有及格。\n"); } return 0; }输出结果:
恭喜你及格了!
在这个例子中,如果 score 大于或等于 60,程序会打印 "恭喜你及格了!";否则,它会打印 "很遗憾,你没有及格。"
我们还可以使用 if-else if-else 结构来处理多个条件:
#include <stdio.h> int main() { int score = 85; if (score >= 90) { printf("优秀!\n"); } else if (score >= 80) { printf("良好!\n"); } else if (score >= 60) { printf("及格。\n"); } else { printf("不及格。\n"); } return 0; }输出结果:
良好!
这个结构允许我们根据不同的分数范围给出不同的评价。程序会从上到下检查每个条件,一旦找到一个为真的条件,就执行相应的代码块,然后跳出整个 if-else if-else 结构。
3. switch 语句
switch 语句是另一种选择结构,它特别适用于根据一个变量的不同值执行不同操作的情况。switch 语句的基本语法如下:
switch (表达式) { case 常量1: // 如果表达式等于常量1,执行这里的代码 break; case 常量2: // 如果表达式等于常量2,执行这里的代码 break; // 可以有更多的 case default: // 如果表达式不等于任何 case 中的常量,执行这里的代码 }
switch 语句会计算表达式的值,然后将结果与各个 case 后面的常量进行比较。如果找到匹配的 case,就执行该 case 下的代码,直到遇到 break 语句或者 switch 语句结束。如果没有匹配的 case,则执行 default 部分的代码(如果有的话)。
下面是一个使用 switch 语句的例子:
#include <stdio.h> int main() { int day = 3; switch (day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期日\n"); break; default: printf("无效的日期\n"); } return 0; }输出结果:
星期三
在这个例子中,switch 语句根据 day 变量的值选择相应的 case,然后打印对应的星期几。如果 day 的值不在 1 到 7 之间,就会执行 default 部分的代码。
需要注意的是,如果在 case 中忘记使用 break 语句,程序会继续执行下一个 case 中的代码,这种行为称为 "fall through"。有时这可能是有意为之,但更多情况下是一个常见的错误。
总的来说,选择结构是C语言中非常重要的语法,它使得程序能够根据不同的条件执行不同的操作,从而实现更加复杂和灵活的逻辑。