分支语句(Branching Statement) 和条件语句类似,也用于控制程序的执行流程。
C 语言通过 switch 和 case 来创建分支语句。其基本语法如下:
switch (表达式) // 表达式的结果必须是整型
{
case 值1: // 当表达式的结果是 值1 时,执行 分支1
分支1
break; // 跳出 switch
case 值2: // 当表达式的结果是 值2 时,执行 分支2
分支2
break; // 跳出 switch
...
case 值n: // 当表达式的结果是 值n 时,执行 分支n
分支n
break; // 跳出 switch
default: // 当表达式的结果不符合任何分支条件时,执行 分支n+1
分支n+1
break; // 跳出 switch
}
说明:
如果“表达式”的结果为“值1”,则执行“分支1”
如果“表达式”的结果为“值2”,则执行“分支1”
...
如果“表达式”的结果为“值n”,则执行“分支n”
如果“表达式”的结果不符合任何分支条件,则执行“分支n+1”,即默认分支
注意:
switch 的表达式结果必须是整型
case 的值必须是整型字面量
如果不使用 break 跳出 switch,则会向下执行后续分支,直至遇到 break。
graph TD
START([开始]) --> COND1{表达式} -- 值1 --> 分支1 -- break --> END([结束])
COND1 -- 值2 --> 分支2 -- break --> END([结束])
COND1 -- 值n --> 分支n -- break --> END([结束])
COND1 -- 其它值 --> DEFAULT_BLOCK["分支n+1"] -- break --> END([结束])
示例:
#include <stdio.h>
int main(void) {
printf("欢迎使用自动售货机!\n");
printf("1. 可乐(3元)\n");
printf("2. 雪碧(3元)\n");
printf("3. 矿泉水(2元)\n");
printf("4. 果汁(5元)\n");
printf("5. 咖啡(6元)\n");
int choice = 0;
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("您选择了:可乐,价格:3元\n");
break;
case 2:
printf("您选择了:雪碧,价格:3元\n");
break;
case 3:
printf("您选择了:矿泉水,价格:2元\n");
break;
case 4:
printf("您选择了:果汁,价格:5元\n");
break;
case 5:
printf("您选择了:咖啡,价格:6元\n");
break;
default:
printf("无效的选择!\n");
}
return 0;
}
说明:
choice 的值是 4,因此进入 case 4: 的分支
运行结果:
欢迎使用自动售货机!
1. 可乐(3元)
2. 雪碧(3元)
3. 矿泉水(2元)
4. 果汁(5元)
5. 咖啡(6元)
请选择:4
您选择了:果汁,价格:5元