黑马程序员技术交流社区

标题: 关于switch开关语句的哪些事儿: [打印本页]

作者: 墨琰    时间: 2015-8-9 12:16
标题: 关于switch开关语句的哪些事儿:
关于switch开关语句的哪些事儿:
1)语句的定义格式:
       需要重点记忆,switch后的小括号()内的数据类型只能为整型的(变量或者常量可以),字符型的(字符变量,字符串常量,Java中可以有字符串JDK1.7以后增加的新特性,不知C11最新版本中有无,查阅),还可以是一个变量赋值的表达式(a=7;).但不可以是定义变量的表达式(int a=7;)。
        case后的数据类型和switch中的完全一样。类似于地址,对应上了就执行其后的表达式,没有找到就执行default后的表达式语句,有点类似于Java中的异常捕获机制,try{可能发生异常的语句}catch(Exception type  exception){处理异常的语句}...finally{最终要执行的语句,例入释放内存空间};finally是最后执行的,不管有没有return 0与在finally之前,它都会执行,除非有exit(0);它是系统退出的指令。
        default的探究:可以在swtich语句体中的任何位置书写
1)deflaut在case语句的最后面, 倘若case语句顺利寻找匹配成功并且执行完表达式,没有进行对应的break,defluat有机会最后执行, 如果deflaut表达式语句之后有对应的break,它将会跳出switch语句并得出相应的计算结果。                              
switch(2 ){
    case :表达式语句1;break;
    case :表达式语句2;;
    case :表达式语句3;
  default :表达式语句4;break;
}
2)deflaut在case语句的最前面, 如果case语句顺利执行,并且成功break以后,此时deflaut不再执行,程序运行不到。
switch( ){
   default :表达式语句4;break;
    case :表达式语句1;,
    case :表达式语句2;
    case :表达式语句3;break;
}
4)deflaut在case语句的中间,如果case顺利匹配,其后表达式语句顺利执行 ,并没有break的情况下,程序执行到deflaut语句,如果defluat也没有进行break,那么deflaut之后如果还有case语句的话,便会被执行到,啥时候退出switch,就看defluat后case语句,啥时候结束,程序流程不会接着循环到最上面的case语句的,不然都成循环了。
switch( 2){
   int a=5;
    case :表达式语句1;break;
    case :表达式语句2;
    default :表达式语句4;
    case :表达式语句3;//break;
}
作者: cheenbee    时间: 2015-8-9 14:14
LZ第一次发帖,就这么高深莫测,好流弊的样子
作者: 微笑的背后3    时间: 2015-8-9 15:24
赞一个,很给力
作者: 阿伦666    时间: 2015-8-9 16:30
可以的,亲啊
作者: 用晦而明    时间: 2015-8-9 17:42
很详细谢谢你
作者: QQ2544    时间: 2015-8-9 20:19
不错哦学习了
作者: 墨琰    时间: 2015-8-9 21:28
微笑的背后3 发表于 2015-8-9 15:24
赞一个,很给力

互相学习  加油
作者: 墨琰    时间: 2015-8-9 21:30
用晦而明 发表于 2015-8-9 17:42
很详细谢谢你

互相学习了  加油
作者: 墨琰    时间: 2015-8-9 21:31
QQ2544 发表于 2015-8-9 20:19
不错哦学习了

互相学习  加油
作者: 温柔JC    时间: 2015-8-9 21:41
不错不错!!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2