continue 語句類似於goto的特殊用法:continue + 識別符號
阿新 • • 發佈:2018-12-11
continue語句只結束本次迴圈,而不終止整個迴圈的執行。而break語句則是結束整個迴圈過程,不再判斷執行迴圈的條件是否成立。
goto語句:用幾個字來描述就是簡單粗暴,也稱為無條件轉移語句,其一般格式如下: goto 語句標號。 其中語句標號是按識別符號規定書寫的符號, 放在某一語句行的前面,標號後加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。在結構化程式設計中一般不主張使用goto語句, 以免造成程式流程的混亂,使理解和除錯程式都產生困難。很容易造成bug。
如果使用 continue + 識別符號,可以很好的利用continue與goto 語句的優點。
先看程式碼實現:
Java程式碼:
//輸出乘法表,去掉平方 import java.io.*; class test { public static void main (String[] args) throws java.lang.Exception { System.out.println("continue 附加 便籤的用法"); lable: for(int i=1;i<10;i++){ for(int j=1;j<10;j++){ if(i==j){ System.out.println(); continue lable; //直接跳轉到lable處,保留本次執行的 i,j值 } System.out.printf("%d*%d=%d\t",i,j,i*j); } // System.out.println(i); } } }
Go程式碼:
/*
功能:列印切片中的資料,去除重複
*/
mm:=[]int{1,2,3,3,3,6,7,8,8,9,10}
label:
for i,data:=range mm{
for j:=0;j<i;j++ {
if mm[j]==mm[i] {
continue label
}
}
fmt.Print(data,"\t")
}
}
從以上例項可以看出,不管是Java還是Go,都支援continue + 識別符號的操作,使得程式設計變得快捷、靈活。
在以上例項中,如果使用goto,則變數值會清零。程式陷入死迴圈。continue + 識別符號,保留了上次變數的值,尤其在多重迴圈中,簡單的continue、break都不能很好的解決問題時,可以考慮使用:continue + 識別符號 。