我只是在做塞拉 - 貝茨SCJP學習指南,我想知道有關的以下問題:標記的break語句...其中未來
public class Wind {
public static void main(String[] args) {
foreach:
for(int j=0; j<5; j++) {
for(int k=0; k< 3; k++) {
System.out.print(" " + j);
if(j==3 && k==1) break foreach; //1
if(j==0 || j==2) break;
}
}
}
}
當k的值等於1,打破的foreach被執行(在第1行),迭代的確切位置在這之後,我腦海中是否現在退出整個循環。下一個迭代點在哪裏?如果外部循環退出,還有什麼進一步的迭代? 研究書中給出的答案是0111233.我看到它的方式,在整個循環退出之前只打印01。不是?
您是否嘗試過執行它?如果你執行它,你所有的問題都會得到解決。 –
是的,而0111233是我得到的。所以考慮到這一點,在foreach運行結束並執行返回到外部循環@Santosh的開始之後,j的值必須保持爲1,這是否爲真,外部循環的迭代是否如continue語句那樣發生?當j保持爲1時,內部循環會再發生兩次迭代,在break foreach點之前打印添加到01的11? –
@ donoughsugre ..不,這是不正確的。你的'break foreach'只會執行一次,然後它會突破你的外部循環,從而停止迭代。請參閱[我的答案](http://stackoverflow.com/a/13311676/1679863),我已經發布了完整的逐步迭代。 –