初學JAVA看不太懂label,
下面分別是break跟continue設定back為跳出的位置。
public class TestBackLabel {
public static void main(String[] args) {
back:{
for(int i=0;i<10;i++){
if(i==9){
System.out.println("break");
break back;
}
}
System.out.println("test");
}
}
}
輸出為break
如果i==9時印出break,並跳出定義的{}區塊
為什麼沒有至少印出9(i==0~8)次test呢?
另外
public class TestBackLabel {
public static void main(String[] args) {
back1:
for(int i = 0; i < 10; i++){
back2:
for(int j = 0; j < 10; j++) {
if(j == 9) {
continue back2;
}
}
System.out.println("test");
}
}
}
輸出為
test
test
test
test
test
test
test
test
test
test
(改back1的話沒有輸出)
這我也看不懂了,請求版友釋義。感謝~
參考這篇的說明
所以
你現在改學 java 不學 R 了嗎?
還是雙修?
超強的
上課輪著上,所以都要學。XD
果然厲害厲害
https://rx1226.pixnet.net/blog/post/326421177
我看完說明還是沒懂lable
第一段
如果i==9時印出break,並跳出定義的{}區塊
為什麼不是輸出
test
test
test
test
test
test
test
test
test
break
for迴圈不是i=1~8的過程都不用輸出嗎?
仔細看...
System.out.println("test");
有在迴圈裡面?
所以說程式碼要用括起來
是有道理的
因為程式碼的縮排可以看清楚迴圈的範圍,如下
println("test");是寫在迴圈外面
而不是裡面
所以i=0~9都不會輸出 test
public class TestBackLabel {
public static void main(String[] args) {
back: {
for(int i=0;i<10;i++){
if(i==9) {
System.out.println("break");
break back;
}
}
System.out.println("test");
}
}
}
我懂了,感謝回覆!