概述
目录
一、switch语句
语法
执行过程
流程图
示例
运行效果
温馨提示
一、switch语句
一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查
语法
C 语言中 switch 语句的语法:
switch(expression){
case constant-expression :
statement(s);
break; /* 可选的 */
case constant-expression :
statement(s);
break; /* 可选的 */
/* 您可以有任意数量的 case 语句 */
default : /* 可选的 */
statement(s);
}
switch 语句必须遵循下面的规则:
- switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型
- 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号
- case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量
- 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止
- 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行
- 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止
- 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的
执行过程
它的执行过程是:
- 首先计算表达式的值,假设为value
- 从第一个case开始,比较value 和整型数值1,如果它们相等,就执行冒号后面的所有语句,也就是从语句1一直执行到语句n+1,而不管后面的case是否匹配成功
- 如果value 和整型数值1不相等,就跳过冒号后面的语句1,继续比较第二个case、第三个case……一旦发现和某个整型数值相等了,就会执行后面所有的语句。假设 value和整型数值5相等,那么就会从语句5一直执行到语句n+1
- 如果直到最后一个整型数值n都没有找到相等的值,那么就执行default后的语句 n+1
- 需要重点强调的是,当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句
流程图
示例
test19.c
#include <stdio.h>
int main()
{
int day=0; // 定义一个整数变量用于接受键盘输入的数字
printf("请输入0-6之间的数字:"); // 提示用户输入
scanf("%d",&day); // 接受用户从键盘输入的数据
switch (day)
{
case 0:
printf("星期天n");
break;
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;
default:
printf("输入错误。n");
}
}
运行效果
温馨提示
switch (result)
{
case 10: printf("..."); break; // 正确,整数
case 1+1: printf("..."); break; // 正确,表达式1+1==17是整数
case '5': printf("..."); break; // 正确,字符可以转换为整数
case 'A': printf("..."); break; // 正确,字符可以转换为整数
case 'A'+10: printf("..."); break; // 正确,字符可以转换为整数
case 3.14: printf("..."); break; // 错误,不能为小数
case ii: printf("..."); break; // 错误,不能采用变量
}
- case后面必须是整数和字符,或者是结果为整数和字符的表达式,但不能包含任何变量。请看下面的例子
- default不是必须的。当没有 default时,如果所有case都匹配失败,那么就什么都不执行
最后
以上就是谦让啤酒为你收集整理的C语言 switch分支结构一、switch语句的全部内容,希望文章能够帮你解决C语言 switch分支结构一、switch语句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复