概述
目录
1.switch 多分支结构的定义
2.switch 结构的定义格式
3.switch 遵循的规则
4.程序示例
5.总结
1. switch 多分支结构的定义
1.1 分支结构的定义:
分支结构的定义请见 《C语言之初识 if_else 分支结构》 此篇博文,此处不在描述。点击此处可直接阅读…
1.2 switch 结构:
①. switch 是另外一种选择结构的语句,用来替代简单的、拥有多分支的 if_else 语句。
②. switch 大多数情况下是进行判断选择的。以C语言来说,switch(开关语句)常和 case break default 一起使用。
2. switch 结构的定义格式
switch (整型变量表达式) // switch 语句,即 “ 切换 ” 语句;case 即 “ 情况 ”
{
case 常量1: 语句块1; break; // break 是 C 语言中的一个关键字,专门用于跳出 switch 语句块1;break;
case 常量2: 语句块2; break;
case 常量3: 语句块3; break;
case 常量4: 语句块4; break;
...
case 常量n: 语句块n; break;
default: 语句;
break;
}
3. switch 遵循的规则
3.1 执行次序:
当变量表达式所表达的值与其中一个 case 语句中的常量值相符时,就执行此 case 语句后面的程序,并依次去执行后面所有 case 语句中的程序,除非遇到 break 语句跳出 switch 为止;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。如果常变量表达式的量都不相符,就执行 default 语句中的程序。
3.2 所写的任何 switch 语句都必须遵循以下规则:
①. 只能针对基本数据类型中的整型类型使用 switch,这些类型包括 int、char 等。对于其他类型,则必须使用 if 语句。
②. switch() 的参数类型不能为浮点数,字符串。(必须是整型类型)。
③. case 标签必须是常量表达式 ( constantExpression ),如 42 或者 ‘4’ + 20。
④. case 标签必须是唯一常量;也就是说,不允许两个 case 具有相同的常量值。
4. 程序示例
4.1 示例一:输入成绩等级,输出相应的分数区间
#include<stdio.h>
/** switch 多分支结构 输入等级成绩 输出相应的分数区间 */
int main()
{
char grade; //等级
printf("Input your grade(A,B,C,D,E): ");
grade = getchar();
switch (grade)
{
case 'A': printf("A(90 -- 100)n");
break;
case 'B': printf("B(80 -- 89)n");
break;
case 'C': printf("C(70 -- 79)n");
break;
case 'D': printf("D(60 -- 69)n");
break;
case 'E': printf("E( < 60)n");
break;
default: printf("Input error!n");
break;
}
return 0;
}
运行结果(部分截图)
4.2 示例二:输入成绩等级,输出相应的分数区间(修改示例一中不区分大小写情况)
#include<stdio.h>
/** switch 多分支结构 输入等级成绩 输出相应的分数区间 大小写都可 */
int main()
{
char grade; //等级
printf("Input your grade(A,B,C,D,E): ");
grade = getchar();
switch (grade)
{
case 'A':
case 'a': printf("A(90 -- 100)n");
break;
case 'B':
case 'b': printf("B(80 -- 89)n");
break;
case 'C':
case 'c': printf("C(70 -- 79)n");
break;
case 'D':
case 'd': printf("D(60 -- 69)n");
break;
case 'E':
case 'e': printf("E( < 60)n");
break;
default: printf("Input error!n");
break;
}
return 0;
}
运行结果(部分截图)
5. 总结
5.1 case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。
case 20: printf("...n"); break; // 正确
case 2+3: printf("...n"); break; // 正确
case 'A': printf("...n"); break; // 正确 字符和整数可以相互转换
case 'A'+23: printf("...n"); break; // 正确 字符和整数可以相互转换
case 9.5: printf("...n"); break; // 错误 不能为小数
case a: printf("...n"); break; // 错误 不能包含变量
case &a+10: printf("...n"); break; // 错误 不能包含变量
case "error": printf("...n"); break; // 错误 不能为字符串
5.2 default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么在 switch 中就什么都不执行,接着执行后续代码。
5.3 当第一个 case 后面没有语句或者没有 break 跳出时,则继续执行下一个 case 后面的语句,直到遇到 break 时在跳出 switch 结构。
最后
以上就是酷酷柠檬为你收集整理的C语言之初识 switch 多分支结构的全部内容,希望文章能够帮你解决C语言之初识 switch 多分支结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复