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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

关于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;
}

9 个回复

倒序浏览
LZ第一次发帖,就这么高深莫测,好流弊的样子
回复 使用道具 举报
赞一个,很给力
回复 使用道具 举报
可以的,亲啊
回复 使用道具 举报
很详细谢谢你
回复 使用道具 举报
不错哦学习了
回复 使用道具 举报

互相学习  加油
回复 使用道具 举报

互相学习了  加油
回复 使用道具 举报

互相学习  加油
回复 使用道具 举报
不错不错!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马