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,只有 46 结果是一样的,因为在检查的时候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 永远不会是5i 始终是偶数。【参考方案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++ // i 现在增加到 3 console.log(i) //打印 3 检查 i 如果步骤 5 为真,则 i++ //现在 i 增加到 4

循环迭代 2,

    进入循环并检查,

    如果 (i == 5) 休息; / 继续; //asi=4这是false,不进入if条件

    i++ // i 现在增加到 5

    console.log(i) //打印 5 检查 i 如果步骤 10 为真,则 i++ //现在 i 增加到 6

循环迭代 3,

    进入循环并检查,

    如果 (i == 5) 休息; / 继续; //asi=6这是false,不进入if条件

并按照上述步骤继续下一步。

所以最后的结论,

你的两个代码 sn-p 永远不会进入 if 条件,即

if (i == 5) 
    break; / continue;

因此您的代码永远不会中断/继续。

【讨论】:

以上是关于break和continue的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

break和continue的区别是啥?

循环控制-break语句和continue语句

它的输出背后的逻辑是啥?它为 Break 和 continue 提供相同的输出

break和continue的区别

break ,continue ,return 的区别及作用?

JAVA里break和continue和return的区别