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 + 标识符。