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的最終變量都沒有改變。 –