1. 程式人生 > >continue 語句類似於goto的特殊用法:continue + 識別符號

continue 語句類似於goto的特殊用法:continue + 識別符號

continue語句只結束本次迴圈,而不終止整個迴圈的執行。而break語句則是結束整個迴圈過程,不再判斷執行迴圈的條件是否成立。

goto語句:用幾個字來描述就是簡單粗暴,也稱為無條件轉移語句,其一般格式如下: goto 語句標號。 其中語句標號是按識別符號規定書寫的符號, 放在某一語句行的前面,標號後加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。在結構化程式設計中一般不主張使用goto語句, 以免造成程式流程的混亂,使理解和除錯程式都產生困難。很容易造成bug。

如果使用 continue + 識別符號,可以很好的利用continuegoto

語句的優點。

先看程式碼實現:

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 + 識別符號