黑马程序员技术交流社区
标题:
C语言学习笔记之分支语句结构 switch
[打印本页]
作者:
chunhuayun
时间:
2015-9-22 11:36
标题:
C语言学习笔记之分支语句结构 switch
本帖最后由 chunhuayun 于 2015-9-22 11:50 编辑
分支语句结构 switch
1)格式: switch(表达式)//必须是整数
{
case 常量表达式1:语句1;
case 常量表达式2:语句2;
case 常量表达式3:语句4;
default:语句5;
}
原理:如果括号内的表达式的结果等于对应的常量表达式,则执行对应的语句块。如果没有对应的,则执行default
2)举例:
int a= 2;
switch (a) {
case 1:
printf("A");break;
case 2:
printf("B");break;
case 3:
printf("C");break;
case 4:
printf("D");break;
default:
break;
}
复制代码
结果:打印B
3)case穿透
a.指,某个case语句执行完成后并没有结束,而直接向下执行其他的case语句
b.如何防止case穿透?
在每个case语句结束后,加上一个break,其作用是结束switch语句块
4)if 语句转换成 switch语句
例子(if例子参见2.9)
int score = 70;
score = score / 10;
switch (score) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("E");break;
case 6:
printf("D");break;
case 7:
printf("C");break;
case 8:
printf("B");break;
case 9:
case 10:
printf("A");break;
default:
break;
}
复制代码
5)if语句与switch语句的选择
a. if语句跟switch语句之间完全可以互相转换
b. 分支比较多而且无法穷尽或进行大量的列举时,最好用if
c.如果分支数量不是那么多,但是使用if代码量比较大的时候,可以选用switch
6)switch语句使用注意事项
a.表达式的类型(switch后括号内的内容)必须是整型或者是可以转换成整型的值。 可以
放一个整型的变量(int a = 1; switch(a))或者常量(2),
也可以放一个返回值是整型的表达式(如 switch(4+5)),或者可以转换为整型的表达式switch('a' + 'a')
b.case 语句可以有多行语句,可以加括号,也可以不加大括号
例如
case 1: a = 1;
b = 2;
c = 3;
break;
复制代码
c.break语句是可选的
7)case 后值的要求
a.可以是常量表达式 如 3+4
b.可以使常量 如10
c.case 语句格式 case 常量表达式://空格和冒号必须有
d.default语句的位置可以任意
e.case语句的穿透问题,如果没有break的话,会向下穿透
f.如果default放在switch语句的最后可以不加break,否则必须加break
g.case 语句后,默认的第一句话,不能是定义变量.如果非要在第一句定义,那要加个大括号,把case后的语句块包含在内
8)练习,实现一个计算器
int a, b, result = 0;
char op;//操作符,
printf("input the expression:");
scanf("%d%c%d",&a,&op,&b);//中间不要输入空格了
switch (op) {
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case '*':
result = a * b;
break;
default:
result = a / b;
break;
}
printf("result : %d", result);
复制代码
作者:
acdd112
时间:
2015-9-22 11:58
switch 用好还是挺方便的
作者:
zhuai68
时间:
2015-9-22 15:46
总结不错,很全面。switch语句很好用,也很方便。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2