我的程序下面的行上出现编译时“无法访问的代码”错误:
System.out.println(“ i =” + i +“,j =” + j);
public static void main(String[] args) {
int i = 0, j = 5;
tp: for (;;)
{
i++;
for (;;)
{
if (i > --j) {
break tp;
}
}
System.out.println("i =" + i + ", j = " + j);
}
}
请帮助我找到确切的原因。提前致谢。
让我们分析一下这段代码:
tp: for (;;) //<-- similar to while(true)
{
i++; //increases i by 1
for (;;) //<-- similar to while(true)
{
if (i > --j) { //decreases j and compares its value against i
break tp; //breaks tp, which means breaking the outer for loop
}
}
//while(true) above
//if break gets executed, it breaks this for loop
//so this line can never be executed
System.out.println("i =" + i + ", j = " + j);
}
最简单的解决方案:
移动System.out.println("i =" + i + ", j = " + j);
到外for
循环之外。
tp: for (;;)
{
i++;
for (;;)
{
if (i > --j) {
break tp;
}
}
}
System.out.println("i =" + i + ", j = " + j);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句