从goto问题开始复习下java循环基础

   今天看到一个面试问题:Java 有没有 goto? 对于这块不是很熟悉就百度查了下结果:goto语句是改变程序的流向,转去执行语句标号标识的语句,会造成程序混乱,使理解和调试上产生困难C语言中存在,而Java中嘿,还真有,但是不能用,它只是java中的保留字

   这我就不服了啊,java中没有goto,是为了不让结构混乱的话,那我还记得有一个标签也可以跳来跳去的,记得不太清,又去查了下标签,这玩意只能在循环外面用,java标签是为了在多重循环中方便使用break和continue设计的,只可以定义在三种循环之前,相当于给循环取名字,指明break和continue哪一个循环。然后我写了个这样的demo:

   

int a = 0;
		int b = 0;
		int c = 0;
		a:
		for(; a<10; a++){
			b:
			for(;b<10; b++){
				c:
				for(;c<10;c++){
					if(c==3){
						System.out.println(a+"-"+b+"-"+c);
						continue a;
					}
					if(c == 5){
						System.out.println(a+"-"+b+"-"+c);
						break b;
					}
				}
			}
		}


   写完了我debug了下...感觉逻辑有点不太顺畅啊,就继续查了下continue和break的区别,想弄明白为什么这玩意是这么玩的。

   continue和break(循环中):主要在于之后的循环中是否进入;

       break:退出所在的循环体,再不执行;

       continue:不执行此次循环体并退出所在循环体,下次条件满足再执行;


   就比如:
		int count = 0;
		for(int i=0; i<5; i++){
			for(int j=0; j<5; j++){
				if(j == 3){break;}
				count++;
			}
		}
		System.out.println(count);
   当 j == 3后面是break时,结果输出15,而当时continue时,结果输出是20,当都没有时,结果是25;

   那么跳出一个多重循环的方式有哪些了呢?1)就是开始写的标签加break;2)还有一种巧妙一点的方式,添加一个额外的判断作为循环条件,就好像:
		boolean go = true;
		for(int i=0; i<10&&go; i++){
			for(int j=0; j<10; j++){
				if(j == 2){
					go = false;
					break;
				}
			}
		}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值