switch-case的编译问题
public int method(int arg){
int ret = 0;
switch(arg){
case 1:
ret = 1;
break;
case 3:
ret = 3;
break;
case 7:
ret = 1;
break;
case 9:
ret = 1;
break;
case 11:
ret = 1;
break;
default:
ret = 12
break;
}
return ret;
}
编译后:
public int method(int arg){
int ret = 0;
switch(arg){
case 1:
ret = 1;
break;
case 3:
ret = 3;
break;
case 7:
ret = 7;
break;
case 9:
ret = 9;
break;
case 11:
ret = 11;
break;
case 2:
case 4:
case 5:
case 6:
case 8:
case 10:
default:
ret = 12
break;
}
return ret;
}
有的时候就不会出现这种补齐状况,请问这是什么原因,有什么规律么?
谢谢。
相关推荐
C语言switch case详解[源码]
本文详细介绍了C语言中switch case语句的结构、执行过程及关键点。switch语句是一种多分支选择结构,用于替代多个if else语句,其基本结构包括表达式、多个case分支及可选的default分支。执行时,首先计算表达式的值,然后与各case的整型数值比较,匹配成功后执行对应分支及其后所有语句,除非遇到break关键字跳出。break用于终止switch语句的执行,避免穿透到其他分支。文章还补充了case后必须为整数或整型表达式、不能包含变量等限制,并强调了default分支的可选性。最后总结了switch语句的特点、适用场景及注意事项,如表达式类型限制、case值唯一性及break的重要性。
Android switch-case报错解决[代码]
文章详细描述了在Android开发中使用switch-case语句时遇到case R.id.xxx报错的问题及其解决方案。作者首先简要介绍了问题现象,随后提供了具体的解决步骤,包括在gradle.properties文件中添加四行关键代码(android.enableJetifier=true、android.defaults.buildfeatures.buildconfig=true、android.nonTransitiveRClass=true、android.nonFinalResIds=false),并执行Sync Now操作。最后确认问题得到解决。该解决方案简洁有效,适合遇到类似问题的开发者参考。
使用JavaScript switch case 另类写法
在JavaScript里,函数(todoA、todoB、todoC)就是对象,“()”的作用就是就是执行函数对象,二者简单地组合一下就能够让代码清晰简洁很多了,何乐不为呢?
C++ switch语句详解[源码]
本文详细介绍了C++中switch语句的语法和使用方法。switch语句用于根据不同的条件执行相应的代码块,其核心在于对expression表达式求值,并根据匹配的case标签执行对应的代码块。文章强调了case标签必须是整型常量表达式,且任何两个case标签的值不能相同。此外,还解释了switch内部的控制流,包括break语句的作用和省略break语句的情况。文章还讨论了default标签的用途,以及在switch内部定义变量的注意事项,特别是跨过变量初始化语句的非法行为。最后,通过示例代码展示了正确和错误的变量定义方式,帮助读者更好地理解和应用switch语句。
举例讲解Swift编程中switch...case语句的用法
主要介绍了Swift编程中switch...case语句的用法,其中fallthrough关键字在switch语句中的使用是重点,需要的朋友可以参考下


Java SE
