break与continue详解

简介: break与continue详解

前言:break和continue的作用

       在循环执行的过程中,如果发生某些状况的时候,需要提前终止循环,这是非常常见的现象。C语言提供了breakcontinue两个关键字,就是应用到循环中的。

总:break和continue在for循环,while循环和dowhile循环中的区别

  1. break       break在所有循环中作用几乎都一样,都用于永久终止循环,但只跳出break外的第一层循环 。
  2. continue    continue在while循环和do while循环中的作用几乎一样,循环调整的位置不同,会产生不同的效果,有可能造成死循环;在for循环中,由于循环调整的位置固定,continue的效果是一样的。

下面进行一一举例说明:

一.while循环中的break和continue

1.break举例

#include<stdio.h>
int main()
{
  int i = 1;
  while (i <= 10)
  {
    if (i == 5)
      break;//当i=5后,就执行break,循环就终止了
    printf("%d ", i);
    i = i + 1;
  }
  return 0;
}

运行结果:

打印了1 2 3 4后,当i等于5时,循环在break的地方终于,不在打印,不再循环。

所以break的作用就是永久终止循环,只有break被执行,break外的第一层循环就终止了。

2.continue举例

       continue是继续的意思,在循环中的作用就是跳过本次循环continue后面的代码,继续进行下一次循环的判断。

上面的代码,如果把break换成continue会是什么结果呢?

#include<stdio.h>
int main()
{
  int i = 1;
  while (i <= 10)
  {
    if (i == 5)
      continue;
            //当i=5后,就执行continue,直接跳过continued代码,去循环的判断的地方
            //因为这里跳过了i=i+;所以i一直等于5,程序陷入死循环
    printf("%d ", i);
    i++;
  }
  return 0;
}

运行结果:程序陷入死循环

       但不是while循环中的所有continue都会造成死循环。接下来,我们调换一下i++(循环的调整)的位置,就会得到不同的效果:

#include<stdio.h>
int main()
{
  int i = 1;
  while (i <= 10)
  {
      i++;//i进入循环后加1,等于2,跳过1,打印2
    if (i == 5)
      continue;//当i等于5时,跳过后面的代码,进入判断条件,后加1,i=6
        
    printf("%d ", i);//当打印10后,进入判断语句,为真,继续循环,打印11
    }
  return 0;
}

运行结果:

       到这里我们就能分析出来,continue可以帮助我们跳过某一次continue后边的代码,直接到循环的判断部分,进行下一次循环的判断,如果循环的调整是在continue后边的话,可能会造成死循环。

(循环详解:后期会出)

二.for循环中break和continue

1.break举例

       和while循环中的break一样,for循环中的break也用于彻底终止循环。

#include<stdio.h>
int main()
{
  int i = 1;
  for (i = 1; i <= 10; i++)
  {
    if (i == 5)
      break;
    printf("%d ", i);
  }
  return 0;
}

运行结果:

2.continue举例

       同样,把上述代码中的break替换成continue

#include<stdio.h>
int main()
{
  int i = 1;
  for (i = 1; i <= 10; i++)
  {
    if (i == 5)
      continue;//这里continue跳过后边的打印,来到i++的调整部分
    printf("%d ", i);
  }
  return 0;
}

运行结果:

这就相当于while循环continue的第二个例子

练习: 程序的输出结果是?

#include <stdio.h>
int main()
{
  int a = 0, b = 0;
  for (a = 1, b = 1; a <= 100; a++)
  {
    if (b >= 20) break;
    if (b % 3 == 1)
    {
      b = b + 3;
      continue;
    }
    b = b-5;
  }
  printf("%d\n", a);
  return 0;
}

答案:8

三.do while语句中的break和continue

       do while语句中的break和continue的作用和while循环中的几乎一模一样。

1.break举例

#include<stdio.h>
int main()
{
  int i = 1;
  do
  {
    if (i == 5)
      break;
    printf("%d ", i);
    i = i + 1;
  } while (i <= 10);
  return 0;
}

运行结果:

2.continue举例

#include<stdio.h>
int main()
{
  int i = 1;
  do
  {
    if (i == 5)
      continue;
    printf("%d ", i);
    i = i + 1;
  } while (i <= 10);
  return 0;
}

运行结果:(死循环)

               欢迎斧正!!! 

期待


目录
相关文章
|
测试技术 Windows
Windows下安装NTP服务器
原文:Windows下安装NTP服务器 NTP服务器介绍 NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒)。
4329 0
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
505 2
|
消息中间件 安全 大数据
Kafka多线程Consumer是实现高并发数据处理的有效手段之一
【9月更文挑战第2天】Kafka多线程Consumer是实现高并发数据处理的有效手段之一
1418 5
|
C语言
C语言——break和continue的区别
C语言——break和continue的区别
957 0
|
算法 Java 测试技术
斐波那契数列的四种实现算法
斐波那契数列的四种实现算法
825 3
|
移动开发 监控 前端开发
如何打造一款标准的JS-SDK
岳赢平台的JS-SDK是如何满足业务监控的需求的呢?如何才能更合理的设计JS-SDK呢,一起来了解下把
6343 0
|
计算机视觉 Python
将QImage转化成Mat方法
本文提供了一个将QImage转换为OpenCV Mat格式的Python函数,通过转换QImage到RGB32格式并使用numpy数组重塑来实现转换。
|
JavaScript 前端开发
continue、return、break三者的区别
continue、return、break三者的区别
|
SQL 数据库 索引
sql server 跨数据库查询
在 SQL Server 中,跨数据库查询是指在一个数据库查询中访问另一个数据库的数据。这通常是在同一 SQL Server 实例上的不同数据库之间进行的。跨数据库查询在很多场景下都很有用,比如数据整
|
算法 程序员 C++
程序员必知:单链表排序(快速排序、归并排序)
程序员必知:单链表排序(快速排序、归并排序)
441 0

热门文章

最新文章

下一篇
开通oss服务