break和continue的区别是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了break和continue的区别是啥?相关的知识,希望对你有一定的参考价值。
break是结束循环。continue是结束本次循环。
循环是有很多次的,break之后不再循环,continue结束本次循环后,再开始下一次的循环。
continue语句只是结束本次的循环,而不是终止整个的执行,接着进行下一次是否执行循环的判定。
而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
比如(1)
main()
int
n;
for(n=100;n<=200;n++)
if(n%3==0)
continie;
print("%d",n);
当n能被3整除时,执行continue语句,结束本次循环(即跳过print函数语句),只有n不被3整除时才执行print函数。
比如(2)
for
(r=1;r<10;r++)
area=pi*r*r;
if(area>100)
break;
print("%f",area);
计算r=1到r=10时的圆面积,当面积area大于100为止。也就是说area>100时,执行break语句,提前结束循环,不再执行剩下的循环。
其实试几次自然知道了
这种问题靠问的话永远学不会 参考技术A break是跳出包含它的那个循环,如果是双重循环且break是在内循环中的,就只能跳出内循环,在外循环中就结束这个双重循环。
continue是结束本次循环执行下一次循环。这个用for语句最好说明,for语句中有表达式1;表达式2;表达式3
表达式1是负值语句,表达式2就判断条件是否为真,为真进入循环,如果遇到continue,则循环体内在continue语句以下的语句则不会直接。continue返回到表达式3 参考技术B 通俗的讲
break是用于结束其后的循环体,接着实行循环体后面的代码
continue则是用于跳过某些特殊的循环,而循环体后面的代码还会继续
Eg.
for(i=0;i<=5;++i)
if(i=3)
break;
则输出为0,1,2
if(i=3)
continue;
则输出为0,1,2,
4,5
它的输出背后的逻辑是啥?它为 Break 和 continue 提供相同的输出
【中文标题】它的输出背后的逻辑是啥?它为 Break 和 continue 提供相同的输出【英文标题】:what is the logic behind its output ? Its giving the same output for both Break and continue它的输出背后的逻辑是什么?它为 Break 和 continue 提供相同的输出 【发布时间】:2019-07-04 10:49:07 【问题描述】:首先,我对输出感到困惑?这个输出怎么可能?
我尝试了很多逻辑,但没有得到通用逻辑/
带'break;声明:
for (var i = 2; i <= 8; i++)
if (i == 5)
break;
i++;
console.log(i);
带有“继续”声明:
for (var i = 2; i <= 8; i++)
if (i == 5)
continue;
i++;
console.log(i);
两者的输出相同:3 5 7 9
【问题讨论】:
它计算偶数。你永远不会得到5
。
您的for
递增i
并且您手动递增它。所以你的循环步骤是 2,而不是 1 => 你永远不会到达 5
,只有 4
和 6
。
结果是一样的,因为在检查的时候i
永远不是5
。
【参考方案1】:
由于在块内部和for
语句内部是双倍增量,因此您只能得到偶数进行检查。
// loop 1 2 3 4
// ---- --- --- --- ---
for (var i = 2; i <= 8; i++) // increment 2 4 6 8
console.log('top', i); // always even 2 4 6 8
if (i == 5) // check with even value 2 4 6 8
// continue;
// break
i++; // increment 3 5 7 9
console.log('bot', i); // always odd 3 5 7 9
.as-console-wrapper max-height: 100% !important; top: 0;
【讨论】:
谢谢!那么下面提到的这段代码怎么样,我得到 5 7 9 作为输出,但是由于 continue 语句 for (var i=4; i 不,问题是不是起始值,而是i++;
。条件永远不会是true
,因为i
永远不会是5
。 i
始终是偶数。【参考方案2】:
众所周知,
Continue - continue 语句终止循环中当前迭代的执行。 Break - break 语句完全中断(停止)循环的执行。在这段代码中,
for (var i = 2; i <= 8; i++)
if (i == 5)
break; / continue;
i++;
console.log(i);
您的i
增加了两次,一次是loop
,另一次是loop body
,即手动增加。
在这种情况下,循环会执行以下步骤,
循环迭代 1,
-
i = 2
进入循环并检查,
如果 (i == 5)
休息; / 继续;
//asi=2
这是false,不进入if条件
i
现在增加到 3
console.log(i) //打印 3
检查 i
如果步骤 5 为真,则 i++ //现在 i
增加到 4
循环迭代 2,
进入循环并检查,
如果 (i == 5)
休息; / 继续;
//asi=4
这是false,不进入if条件
i++ // i
现在增加到 5
i
增加到 6
循环迭代 3,
进入循环并检查,
如果 (i == 5)
休息; / 继续;
//asi=6
这是false,不进入if条件
并按照上述步骤继续下一步。
所以最后的结论,
你的两个代码 sn-p 永远不会进入 if 条件,即
if (i == 5)
break; / continue;
因此您的代码永远不会中断/继续。
【讨论】:
以上是关于break和continue的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章
它的输出背后的逻辑是啥?它为 Break 和 continue 提供相同的输出