Fra*_*ank 1 java switch-statement
当我输入以下方法并用Java编译时,我得到了"错误:无法访问的语句",为什么?
String getRankChar(int rank,boolean isFront)
{
switch (rank)
{
case 0 : return isFront?"<":">";break;
case 1 : return isFront?"[":"]";break;
case 2 : return isFront?"[":"]";break;
case 3 : return isFront?"(":")";break;
case 4 : return isFront?"(":")";break;
default : return " ";break;
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 10
你break在每个return声明后都有一个声明.所有这些break陈述都无法达到,正是因为你在每个陈述之前都回来了.
根据JLS 第14.21节:
如果由于无法访问语句而无法执行语句,则会发生编译时错误.
和:
[...]如果S之前的语句可以正常完成,则非空交换块中的每个其他语句S都是可到达的.
...
一
break,continue,return,或throw语句无法正常完成.
该return语句无法正常完成,因此该break语句无法访问(对于您的每个案例).
只需删除break语句即可.
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |