为什么当我在迭代中中断标签时输出此结果
why output this result when I make break to label in iteration?
我是javascript的新手,当我学习for statement
时,我当然不理解这个输出。
foo: for(var i=0; i<3; i++){
console.log(i);
if(i==1){
break foo;
}
}
我得到了一些这样的印刷品..
0
1
老实说,我不知道这里发生了什么,我认为这可能会在这里抛出错误,因为可能会导致太深的迭代。
我想得到这个结果
0
1
0
1
0
1
...
也许这是一个愚蠢的问题,但我确实想得到答案。
谁能帮我..
for(var i=0; i<3; i++){
console.log(i);
if(i==1){
break foo;
}
}
您正在运行从 0 到 3(不包括(迭代的 for loop
。
在每次迭代中,它print
i 的值。
如果 i 的值为 1,则它从循环break
first iteration: i=0; print 0 continue as 0 != 1
second iteration: i=1 print 1 break as 1 == 1
精简更多关于循环
您的循环正在尝试在小于 3 时输出i
,并在每次迭代时将其递增 1。
if (i == 1)
语句在第二次迭代中true
,因此执行break
从而"退出"循环。
无限循环就可以了。
var v = 0;
while (true) { // <-- this runs forever!
console.log(v);
v ^= 1;
}
或限制为 1000 个循环
var v = 1000;
while (v) {
out(v % 2);
v--;
}
// just for dispaying the result
function out(s) {
var descriptionNode = document.createElement('div');
descriptionNode.innerHTML = s + '<br>';
document.getElementById('out').appendChild(descriptionNode);
}
<div id="out"></div>
您的代码执行以下操作:
- 打印 i
- 然后打破
它将打印0 1
然后断开循环。
- 实际上,break 语句用于脱离循环。
- 正如我们之前所知,循环循环执行直到条件(此处
i<3
(为真。 如果条件为假,则当 i 增加到 3 时,它终止。 - 但是,要检查的 if 条件是
i==1
因此每当 i 增加到 1 时,for 循环就会被 break 语句终止。 - 每次将 i 的递增值作为日志打印在浏览器的控制台中时。 直到终止。
相关文章:
- 如何在标签上输出Chart.js雷达图的正确值
- 有没有一种方法可以从两个标签之间提取文本,并以我选择的格式输出
- 有没有办法在使用 html 输出标签时控制图像的大小
- 如何在不输出结束PHP标签“?>”的情况下将PHP MySQL查询回显到Javascript变量中
- jQuery 运行总计和输出标签不起作用
- 输出脚本标签而不带jQuery,避免执行
- Jquery 删除输出上的头部和身体标签
- 从 Chrome 扩展程序中读取标签页的控制台输出
- 从前 5 个标签中获取“id”,并使用纯 javascript 在输出中用逗号分隔它们
- 无法在javascript脚本标签中输出实际的json数据
- 美观打印时避免Jade模板输出中标签之间的空白
- 获得“id"仅前三个标签中的值并用","分隔它们在输出
- 输出JSON数据到Chart.js标签和数据
- 为什么.html()不输出html标签
- ASP.jQuery UI自动完成的输出格式(显示值标签键对)
- 如何复制/获取当前标签url在chrome和输出弹出窗口
- 在JavaScript中,如何使鼠标悬停在标签上将在p标记中输出单选按钮的值
- 在javascript中随机选择和输出变量到span标签
- 在javascript中输出到标签
- 脚本标签中的变量输出