label语句、break语句和continue语句
label语句
可以在代码中添加标签,以便使用。以下是label语句的语法:
label:statement
示例:
start:
for (var i = 0; i < count; i++) {
alert(i);
}
该示例中定义的start标签可以在以后由break或continue语句引用,加标签语句一般都要与for语句等循环语句配合使用。
break语句和continue语句
break语句和continue语句用于在循环中精确的控制代码的执行。其中,break语句会立即退出循环,强制继续执行循环后面的语句。而continue语句虽然也是立即退出循环但是退出循环后会从循环的顶部继续执行。
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>break语句</title>
<script type="text/javascript">
window.onload=function(){ var num=0;
for (var i = 1; i <10; i++) {
if (i%5==0) {
break; }
num++; }
alert(num);
} </script>
</head>
<body> </body>
</html>
test4.html
结果显示:

在这个例子中的for循环会将变量i由1递增至10.在循环体内,有一个if语句检查i的值是否可以被5整除(使用求模操作符)。如果是,则执行break语句退出循环。另一方面,变量num从0开始,用于记录执行的次数。在执行break语句之后,要执行的下一行代码是alert()函数,结果就显示是4.当然,也就是说,在变量i=5时,num++总共执行的次数为4次;而break语句的执行,导致循环在num再次递增之前就退出了。
如果这里把break替换为continue,则可以看到另一种结果:
<script type="text/javascript">
window.onload=function(){ var num=0;
for (var i = 1; i <10; i++) {
if (i%5==0) {
continue;//把break替换为continue }
num++; }
alert(num);
}
</script>

把break替换为continue结果之后结果显示为8,也就是num++总共执行了8次。当i=5时,循环会在num再次递增之前退出,但接下来执行的是下一次循环,即i的值等于6的循环,于是循环又继续执行,直到i等于10时自然结束。
另一个问题就是为何num最终值为8?原因是continue语句导致它少递增了一次。
break和continue语句都可以与label语句联合使用,从而返回代码中的特定位置。这种联合使用的情况多发生在循环嵌套的情况下。
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>break和continue语句与label语句联合使用</title>
<script type="text/javascript">
window.onload=function(){ var num=0; outermost:
for (var i = 0; i<10; i++) {
for (var j = 0; j<10; j++) { if (i==5&&j==5) {
break outermost; }
num++; }
}
alert(num);
} </script>
</head>
<body> </body>
</html>
test5.html

在该示例中,outermost标签表示外部的for语句。如果每个循环正常执行10次,则num++语句就会正常执行100次。换句话说就是如果两个循环都自然结束,num的值应该是100,但由于内部循环中的break语句带一个参数:要返回到的标签。添加这个标签的结果将会导致break语句不仅会退出内部的for语句(即使用变量j的循环),而且也会退出外部for语句(即使用i的循环)。为此,当i,j都等于5时,num的值刚好等于55.同样continue也可以像这样与label语句联用哦!
<script type="text/javascript">
window.onload=function(){ var num=0; outermost:
for (var i = 0; i<10; i++) {
for (var j = 0; j<10; j++) { if (i==5&&j==5) {
continue outermost;//将break换为continue }
num++; }
}
alert(num);
} </script>
结果显示:

在该情况下,continue语句会强制执行循环————退出内部循环,执行外部循环。当j是5时,continue语句执行,而这意味着内部循环少执行了5次,因此num的结果是95.
label语句、break语句和continue语句的更多相关文章
- 算术运算,赋值运算,if语句,while,continue语句
算术运算 print(10 / 3)=3.333333333333 print(10 // 3)=3 print(10 ** 2)=100 赋值运算增量赋值 age=18 age+=1 print(a ...
- MATLAB 的break语句和continue语句
break语句: MATLAB中 break 语句用于终止 for 或 while 循环的执行,当在循环体内执行到该语句的时候,程序将会跳出循环,继续执行循环语句的下一语句. %% MATLAB br ...
- ECMAScript1.2 表达式|语句|break|continue
表达式 一个表达式可以产生一个值,有可能是运算,函数调用, 有可能是字面量,表达式可以放在任何需要值的地方. 语句 语句可以理解为一个行为,循环语句和判断语句就是典型的语句. 一个程序有很多个语句组成 ...
- 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句
050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...
- 语句:if语句、do-while语句、while语句、for语句、for-in语句、with语句、label语句、switch语句以及break和continue语句;
ECMA-262规定了一组语句(也成为流控制语句),语句定义了ECMASript中的主要语法. 语句分类:条件分支语句.条件判断语句和循环语句 代码块:是一对包裹多行代码的花括号,代码块后不可加引号: ...
- JavaScript If...Else、Switch、For、While、Break、Continue语句
一,JavaScript If...Else 语句 条件语句 通常在写代码时,您总是需要为不同的决定来执行不同的动作.您可以在代码中使用条件语句来完成该任务. 在 JavaScript 中,我们可使用 ...
- break和continue语句
跳转语句中断当前的执行过程,C++语言提供了4中跳转语句:break.continue.goto和return. break语句 break语句负责终止离他最近的while.do while.for或 ...
- JavaScript Break 和 Continue 语句
1.break:终止本层循坏,继续执行本次循坏后面的语句: 当循坏有多层时,break只会跳过一层循坏 2.continue:跳过本次循坏,继续执行下次循坏 对于for循环,continue执行后,继 ...
- for循环里面的break;和continue;语句
for循环里面的break;和continue;语句 break语句 哇,我已经找到我要的答案了,我不需要进行更多的循环了! 比如,寻找第一个能被5整除的数: for循环中,如果遇见了break语句, ...
随机推荐
- Context对象还提供了相应的属性来调整线条及填充风格
创建一个Canvas画布的方法如下: 复制代码 代码如下: <canvas id=”canvas” width=”600” height=”400”></canvas> 可以在 ...
- oozie学习笔记
#################################################################################################### ...
- PHPExcel exception: “Could not close zip file … ”报错
Q: PHPExcel exception: “Could not close zip file … ” A:目录没有写权限,chmod 对$phpExcel->save($dir)中报错路径设 ...
- int float 的具体的取值范围取决于具体的机器 整数除法舍位 整形(int)也可以用于存储字符型数据
int 通常为16位 存储单元 float 通常为32位 取决于具体的机器 #include main() { int fathr,celsius; int lower,upper,step; ...
- C++创建窗口程序初步
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- 线性参照,M值的相关测试
怎样使用普通线要素获取带M值的线要素 怎样查看线要素各个折点上的M值,怎样导出为一张表 线性参照:http://resources.arcgis.com/zh-cn/help/main/10.2/in ...
- 2018/04/04 PHP 中的 数组排序问题
简单说一下为什么要总结一下PHP中关于数组排序的问题. 在很多时候我们对于数组要进行排序,但是 PHP 中对于排序已经有了很多封装. 但是某些函数是修改原数组,一部分是返回修改后数组,与其一个个试,不 ...
- 洛谷CF264B Good Sequences dp
解题报告:dp+数论 解题报告: 传送门! 开始看这题的时候想挂了,,,想了个显然是错解的想法,,,就是,我也不知道我怎么想的,鬼迷心窍地就想开个数组存每个质因数的倍数的出现次数,然后排下序的max就 ...
- 【虫师讲Selenium+Python】第三讲:操作测试对象
一.首先呢,选择一个编辑器,我们这里选择的是Sublime Text >Ctrl+B为运行当前脚本的快捷方式 二.编写代码 #coding==utf-8 from selenium import ...
- sql server递归日期
在做项目任务时,需要将一个日期范围转换为日期表. 例如:日期范围(2017年01月21日~2017年02月20日).转换成一日为单位的日期表,如下. 2017-01-21 2017-01-22 201 ...