A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 爱楚楚 中级黑马   /  2015-7-15 22:08  /  684 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

、基本格式:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
...
case 常量表达式n: 语句n;
default: 语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表 达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如 表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
2、case语句的穿透问题(向下穿透)
  1)定义:某个case语句执行完成后,并没有结束,而直接向下执行其他的case语句
  2)解决方法:
        在每一个case语句之后加上一个break;(作用:结束switch语句 ,使程序继续执行后面的语句)
3、if分支和switch分支的选择:
   1)分支比较多且无法穷尽或进行大量列举时最好用if
   2)如果分支数量不是很多,但是使用if代码代码量比较大的时候,可以选用switch
关键在于:思路一样,语法不一样
4、switch使用注意事项
1)switch语句分表达式类型
    1))可以放一个整型的变量 如:int num =10; switch(num)
    2))可以放一个整型常量  如switch(10)
    3))可以放一个返回值是整型的表达式 如:switch (5+5)
    4) )  可以放可以转换为int类型的表达式  如:switch(‘a’+‘a’)
2)case语句可以有多行语句,可以加括号,也可以省略(建议加上)
3)break语句是可选的(加或不加)
4)case值的规定
     case的语句格式:case 常量表达式: (空格和冒号不能省)
    1))可以是常量 如:case 10:
    2))表达式只能是常量表达式 如 case 5+5:
    3))default语句的位置可以任意放
    4))case的穿透问题同样适用于default(default在case语句下面)
    5))如果default语句放到switch语句放到最后,可以不加break;如果不是最后必须加
    6))case后面不能是实数
    7))case语句之后,默认第一句话不可以定义变量,如果非要定义,加上大括号
   8))(xcode)编译器的bug

1 个回复

倒序浏览
多谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马