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语句, ...
随机推荐
- 170809、 把list集合中的数据按照一定数量分组
/** * @Desc : 切分list位多个固定长度的list集合(我这是业务需要,直接是1w条数据切分) * @Author : RICK * @Params: [historyList] * @ ...
- hdu3065 病毒侵袭持续中【AC自动机】
病毒侵袭持续中 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- hdu1754 I Hate It【线段树】
很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然,老 ...
- python中的字符串切片
python中的字符串切片,似乎有点乱,例如: >>>pystr='Python' >>>pystr[2:5] 就会输出 'tho' 这该怎样理解呢?中括号[2:5 ...
- 2018牛客网暑期ACM多校训练营(第二场) A - run - [DP]
题目链接:https://www.nowcoder.com/acm/contest/140/A 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K ...
- OC中分类(Category)和扩展(Extension)
1.分类的定义 category是Objective-C 2.0之后添加的语言特性,中文也有人称之为分类.类别.Category的主要作用是为已经存在的类添加方法.这个大家可能用过很多,如自己给UIC ...
- linux,centOS,用LNMP搭建wordpress,更新固定连接--全流程
下午到晚上的时间,买了个linux服务器,用的centOS系统,遇到各种问题! 1.用putty,ssh到vps后,根据网上命令,一步步下载并安装,具体步骤可以看一下网上教程,LNMP.org站上的教 ...
- (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)
(3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...
- 004-redis-命令-哈希操作,列表操作
Redis hash 命令 下表列出了 redis hash 基本的相关命令: 序号 命令及描述 1 HDEL key field1 [field2] 删除一个或多个哈希表字段 2 HEXISTS k ...
- 【剑指offer】输入一个链表,输出该链表中倒数第k个结点。
一.题目: 输入一个链表,输出该链表中倒数第k个结点. 二.思路: 用两个指针p1和p2,p2先跑k步,然后p1和p2同时跑,p2跑到头p1所在的位置就是倒数第k个节点.很简单吧?简单你也想不到,想到 ...