int a=10,b=20;
for(int i=0;a>b;i++)
{
System.out.print("aa");
}
System.out.print("bb");
B.
final int a=10,b=20;
for(int i=0;a>b;i++)
{
System.out.print("aa");
}
System.out.print("bb");
Q.为什么码A打印输出 “BB”,而代码B返回错误 “不可达代码” ?
最终变量永远不能在运行时更改,但正常变量可以。所以在** A **有可能达到for循环的内部,但在** B **中它永远不可能 – XtremeBaumer
为了澄清,在** A **中理论上*它可能会进入循环,如果之间有一些额外的代码。换句话说,编译器不会试图猜测流,除非它真的很明显。 – shmosel
@ XtremeBaumer A和B的最终变量都没有改变。 –