信息发布软件,b2b软件,广告发布软件

标题: JavaScript 中的Continue终于可以解决循环的问题了吧 [打印本页]

作者: 群发软件    时间: 2017-6-1 00:04
标题: JavaScript 中的Continue终于可以解决循环的问题了吧
本帖最后由 群发软件 于 2017-6-1 00:06 编辑

今天在研究某系统时发现其代码有这样一个结构(已简化):
[url=]复制代码[/url]代码如下:

var result = false;
point:
{
var obj = { key: 1 };
for (var key in obj) {
// ...
break point;
}
result = true;
}
alert(result);


咋看一下以为是代码错误,甚至于Visual Studio对此代码没办法进行正确的格式化。可是又仔细一看语意还是很清晰的,也就是从for循环内部break到指定的point这个位置,而且此系统不应该犯这样的错误的。因为自己没有这样使用过,遂进行了一番测试,测试结果果然是自己学术不精啊。。。这是javascript既有的语法,break是可带位置标签的,查阅相关文档发现continue一样也是可以带位置标签的。

他们的的语法分别为:

break [label];
continue [label];
我们知道在循环体当中break只能跳出当前循环,而当break带上了标签,就能随意跳到某位置,可轻松的跳出多重循环,此外switch中的break也是一样可以这样使用。


 JavaScript break 和 continue 语句

  有两种特殊的语句可用在循环内部:break 和 continue。

  Break

  break命令可以终止循环的运行,然后继续执行循环之后的代码(如果循环之后有代码的话)。

  实例:


<html>  
<body>  
<script type="text/javascript">  
var i=0  
for (i=0;i<=10;i++)  
{  
if (i==3){break}  
document.write("The number is " + i)  
document.write("<br />")  
}  
</script>  
</body>  
</html>


  结果:

  The number is 0

  The number is 1

  The number is 2

      Continue

  continue命令会终止当前的循环,然后从下一个值继续运行。

  实例:



<html>  
<body>  
<script type="text/javascript">  
var i=0  
for (i=0;i<=10;i++)  
{  
if (i==3){continue}  
document.write("The number is " + i)  
document.write("<br />")  
}  
</script>  
</body>  
</html>

  结果:

  The number is 0

  The number is 1

  The number is 2

  The number is 4

  The number is 5

  The number is 6

  The number is 7

  The number is 8

  The number is 9

  The number is 10

JavaScript break 结束循环
JavaScript break 命令表示结束当前循环,然后继续执行循环之后的代码。break 一般配合 if 条件语句一起使用,如下例子:
<script type="text/javascript">var i=1for (i = 1; i<=10; i++) {    if (i > 5) {        break;    }    document.write(i + "<br />");}</script>
运行结果:
12345JavaScript continue 跳过当前循环
与 break 命令不同的是,JavaScript continue 跳过当前的循环(相当于本次循环无效)而继续下次循环,直到循环结束。
下面的例子演示了输出 1-10 之间的奇数:
<script type="text/javascript">var i=1for (i = 1; i<=10; i++) {    if ( i % 2 == 0 ){        continue;    }    document.write(i + "<br />");}</script>
运行结果:
13579提示
如上例所示,不管是 break 结束循环还是 continue 跳过当前循环,需要注意执行 break/continue 命令的位置。上面输出奇数的例子,如果将 continue 命令放在 document.write 命令之后,则无法达到我们输出奇数的结果。

作者: x201323    时间: 2017-6-14 11:17
和5号笨蛋服务很好,全五分好评!!!!!
作者: qingling520    时间: 2017-6-22 17:24
家服务态度绝对一流!
作者: mmgg    时间: 2017-6-22 23:10
效率,好评!!!!
作者: 发财猪    时间: 2017-6-22 23:30
绝对没得说,小笨蛋2号18号35号都非常有耐心,尤其是后来有很多问题和改动,18号都很耐心为我解决。非常感谢。
作者: feiyang2006    时间: 2017-6-23 03:01
下单到完成,花了大把的时间,主要是不仅质量好服务态度好,完成后还继续和你一起调整好网页,这样的工作效率和质量,不达成长期合作,还去哪里?
作者: meng00123    时间: 2017-6-23 06:10
笨蛋和5号笨蛋的服务,全五分好评。
作者: 1124789174    时间: 2017-6-24 06:59
好,速度快,模板制作精美,非常成功的一次网购。
作者: chenzhanhua    时间: 2017-6-24 18:28
0多天才来评价的,后台很完美易懂。客服和助理,技师都会一一解答!!全5分星是一定的!!
作者: 武器    时间: 2017-6-25 14:51
来的,挺满意的,客服也比较也耐心~回头会介绍人过来的
作者: jingtai001    时间: 2017-6-30 03:26
亮,也很专业,弄起来以后果然就是不一样,速度也很快,有效率,满意
作者: iiiiik    时间: 2017-6-30 11:17
这么细心的店主,耐心,负责,产品也物美价廉,真是太值得了!




欢迎光临 信息发布软件,b2b软件,广告发布软件 (http://postbbs.com/) Powered by Discuz! X3.2