您的位置:首页 > 其它

8.5 switch...case语句注意问题

2017-11-09 22:19 381 查看

switch中的值类型

byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串类型了。

切记 long 类型和Boolean类型是不行的。

eg:

...
long  long1 = 1L;

switch(long1){// C

case 1 : System.out.println(" 11 "); break;

case 2 : System.out.println(" 1132 "); break;// D
}
...


以上的例子是错误的,因为switch中是指不能是long 类型,会报错。

case值要是常量

eg.

...
int num = 11;

byte a = 11;

switch(a){// C

case num : System.out.println(" 11 "); break;

case 22 : System.out.println(" 22 "); break;

default:

}
...


以上代码是错误的, 因为num还不是常量。解决办法:

将变量声明为final即可。即

final int num = 11;


switch与case的值要对应

eg:

...
byte a = 12;

switch(a){// C

case 11 : System.out.println(" 11 "); break;

case 223 : System.out.println(" 1132 "); break;// D

}
...


以上的程序也是错误的,因为case的值为223时,超过了byte的最大值;还有,当case中出现俩个值一样时,也是会报错。

忘记写break语句

eg.

...
byte a = 11;

switch(a){// C

case 11 : System.out.println(" 11 "); ;

case 22 : System.out.println(" 22 "); ;// D

}
...


以上的代码,会输出 11,12。原因在于没有写break语句。

default语句

一般地,我们都要在结束时加上default语句。

eg.

...
byte a = 11;

switch(a){// C

case 11 : System.out.println(" 11 "); break;

case 22 : System.out.println(" 22 "); break;

default:System.out.println(" default ");

}
...


暂时就这些了,都是细节啊。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: