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

猜你喜欢

转载自blog.csdn.net/weixin_42117918/article/details/84181185