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