aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 16786|回复: 13

break label, continue label, break N, continue N 语句

[复制链接]

42

主题

628

回帖

3765

积分

版主

积分
3765
发表于 2013-6-5 11:33:13 | 显示全部楼层 |阅读模式
break语句中断并退出当前循环语句。
continue语句跳过当前循环体剩下的部分,继续执行下一次循环。
关于循环语句、以及break、continue语句的基本用法请参考《 aardio语法手册 - break语句》  

一个循环语句可以嵌套包含另一个循环语句,
如果希望在内层循环中跳过外层循环,那么普通的break、continue语句就无能为力了。

break label,continue label 通过为循环指定一个标号以中断指定的循环。
break N,continue N 通过指定循环语句的嵌套层次以中断指定的循环。

下面分别看一下在不同编程语言中对该语法的支持。


42

主题

628

回帖

3765

积分

版主

积分
3765
 楼主| 发表于 2013-6-5 11:39:15 | 显示全部楼层
  1. import php;
  2. import console;
  3. php.print = function( s ) {
  4.         console.log( s )
  5. }

  6. phpcode =/*
  7.    
  8.         for ($i = 0; $i < 3; $i++) {
  9.          
  10.                    for ($j = 0; $j < 3; $j++) {
  11.                     
  12.                       if ($i == 1 && $j == 1) {
  13.                          continue 2; //中断向上第二层的循环
  14.                       } else {
  15.                          print("$i = " . $i . ", $j = " . $j);
  16.                       }
  17.                    }
  18.         }
  19. */
  20. php.exec(phpcode)  
复制代码
break-n.png

42

主题

628

回帖

3765

积分

版主

积分
3765
 楼主| 发表于 2013-6-5 11:42:51 | 显示全部楼层
  1. import console;
  2. import web.script
  3. var vm = web.script( )
  4. vm.external = {
  5.         log = function(...){
  6.                 console.log( ... )
  7.         }
  8. }

  9. var javascript = /*  
  10.     var i, j;
  11.    
  12.         loop1:
  13.         for (i = 0; i < 3; i++) {
  14.        
  15.                    loop2:
  16.                    for (j = 0; j < 3; j++) {  
  17.                       if (i == 1 && j == 1) {
  18.                          continue loop1;
  19.                       } else {
  20.                          external.log("i = " + i + ", j = " + j);
  21.                       }
  22.                    }
  23.         }

  24. */
  25. vm.AddCode( javascript );
复制代码
break-lable.png

42

主题

628

回帖

3765

积分

版主

积分
3765
 楼主| 发表于 2013-6-5 11:48:01 | 显示全部楼层
与javascript的区别是:aardio将循环标号写在循环体内部开始处
  1. import console;

  2. var i, j;
  3. for (i = 0; 2; 1 ) { loop1:

  4.    for (j = 0; 2; 1) { loop2:
  5.    
  6.       if (i == 1 && j == 1) {
  7.          continue loop1;
  8.       }
  9.       else {
  10.          console.log("i = " + i + ", j = " + j);
  11.       }
  12.    }
  13. }
复制代码
break-lable-aauto.png

aardio也支持PHP中的break N,continue N语法,大家可以自己动手测试一下。




6

主题

123

回帖

1113

积分

四级会员

积分
1113
发表于 2013-6-5 11:50:39 | 显示全部楼层
谢谢分享!!

18

主题

102

回帖

688

积分

三级会员

各种菜

积分
688
发表于 2013-6-5 12:17:16 | 显示全部楼层
学习了啊!原来还可以这样

0

主题

9

回帖

70

积分

一级会员

小菜鸟

积分
70
发表于 2013-6-7 11:29:01 | 显示全部楼层
学历了。。。。。。。。。

0

主题

2

回帖

11

积分

新手入门

积分
11
发表于 2013-6-7 13:09:32 | 显示全部楼层
图文并茂,清晰易懂,谢谢分享!!

8

主题

110

回帖

904

积分

三级会员

积分
904
发表于 2013-6-9 09:57:23 | 显示全部楼层
学习了
谢谢分享这么详细的演示

2

主题

21

回帖

181

积分

一级会员

积分
181
发表于 2013-6-9 10:48:53 | 显示全部楼层
谢谢分享~

0

主题

24

回帖

132

积分

一级会员

积分
132
发表于 2013-6-11 15:42:43 | 显示全部楼层
很好的示例代码,谢谢...又学到一招

0

主题

11

回帖

140

积分

一级会员

积分
140
发表于 2013-9-7 16:58:26 | 显示全部楼层
很强大的探索精神

0

主题

1

回帖

7

积分

新手入门

积分
7
发表于 2013-10-7 11:25:55 | 显示全部楼层
不错!起码看起来有点意思

0

主题

14

回帖

101

积分

一级会员

积分
101
QQ
发表于 2017-12-17 19:37:34 | 显示全部楼层
很好,很不错啊
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-1-13 14:36 , Processed in 0.092313 second(s), 26 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表