Java代码报Unreachable Statement错误 无前置死循环或返回语句如何修复
Java不可达语句错误修复方案
错误原因
你代码中所有switch分支末尾的continue关键字使用错误:continue作用于外层的for (int i = 0; i < runs.length; i++)循环,只要第一个switch执行,不管命中哪个分支,都会直接结束当前i的循环迭代,跳去执行下一轮i的逻辑,因此第一个switch后面的第二个switch、System.out.println代码永远不会被执行,触发不可达语句报错。
修复方法
将所有switch代码块内分支末尾的continue替换为break即可:break的作用是仅终止当前switch的执行,不会中断外层for循环的后续代码,修改后第一个switch执行完成后会自动继续执行后面的第二个switch和打印语句。
修复后核心代码示例
else if(runs[i].length() == 3) { // 第一个switch,所有continue替换为break switch (runs[i].charAt(1)) { case '0': tempData.add((byte) 0xA); break; case '1': tempData.add((byte) 0xB); break; case '2': tempData.add((byte) 0xC); break; default: break; } // 第二个switch可以正常执行 switch (runs[i].charAt(2)) { case 'A': tempData.add((byte) 0xA); break; case 'B': tempData.add((byte) 0xB); break; default: break; } // 打印语句可以正常执行 System.out.println("We Made It!"); }
同时需要将if分支里的内层switch的所有continue也替换为break,避免其他逻辑异常。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

