C语言循环语句

一、在C语言中循环语句有三种,分别是while循环、for循环、do while循环,下面我就这三种循环为大家一一介绍。

1.while循环

语法格式:while(循环条件){循环内容}

在while循环中,满足循环条件(即循环条件为真)就执行循环体内容,执行完循环内容再对循环条件进行判断若还为真就再次执行循环体的内容,直到循环条件为假,跳出循环(即循环结束)。下图是while语句的执行过程。

while语句执行流程图
​​​​

while语句和if语句的书写形式基本一致,它们的区别是程序执行完if语句后就直接往下跑了,而程序执行完while循环内容时,还要接着判断循环条件是否为真,若为真接着执行内容,这就是它们之间的本质区别。 

//代码一
#include <stdio.h>
int main()
{
    if(1)//此时表达式为真,控制台将会打印1次haha
   {
    printf("haha\n");
   }
    return 0;
}
//代码二
#include <stdio.h>
int main()
{
    while(1)//此时表达式为真,控制台会不断打印haha  陷入死循环
    {
    printf("haha\n");
    }
    return 0;
}

 上述代码一,表达式结果返回的结果为1,1不等于0所以为真,执行一次内容后就结束了,而代码二,表达式的也为真,因为表达式一直为真所以它会一直循环,不断打印haha,我们也称这种现象为“死循环”,我们在写代码时一定要注意不要将循环写成“死循环”。

2、for循环

语法形式:for(表达式1,表达式2,表达式3){循环语句} 

也可以理解为for(初始化循环变量,循环条件,调整循环变量){循环内容}

在for循环中,先执行表达式1,初始化循环变量,再执行表达式2,若表达式2返回的值为真则执行循环内容,接着执行表达式3调整一下循环变量,再次执行表达式2判断真假,若为真执行循环内容,这就达到了循环的效果,若在循环时遇到表达式2的值为假则跳出循环(即循环结束)。下图是for语句的执行过程。

for循环执行流程图
 

 在for循环中,表达式1只执行1次,剩下的就是表达式2-->循环语句-->表达式3在循环,for循环还有一个特点它将初始化循环变量,循环条件,调整循环变量写在一起,这便于代码的维护,如果代码较多时while循环的三个部分就比较分散,所以从形式上for循环更优。

3、do while循环

语法形式:do{循环内容}while(循环条件)

在do while中,先执行循环语句执行完再判断循环条件,若循环条件返回的值为真则执行循环内容,若为假,跳出循环(即循环结束),它也有特点,程序在执行while循环和for循环时会先判断循环条件是否为真再做决定,而do while循环是直接执行循环内容,然后再判断循环条件是否为真,它至少会执行一次循环内容。具体的执行流程如下图所示。

do while循环执行流程图
 

 do while循环在实际应用中运用的较少。

 二、在这三种循环中,会存在两个关键字break和continue

1、break关键字

在这三种循环的循环内容中,break的作用是:跳出整一个循环。

//以while循环为例
#include <stdio.h>
int main()
{
    int i = 0;
    while(i < 10)
    {
        i++;
        if(i == 5)
        {
           break;//当i==5时跳出循环
        }
        printf("%d ",i);//1 2 3 4
    }
    return 0;
}

 这段代码输出的结果是1 2 3 4,当i++的返回值等于5时if语句的表达式为真,执行break;语句跳出整一个循环所以只打印1 2 3 4,其余的5,6,7,8,9,10统统不打印。我们需要注意的是当有多个循环嵌套的时候,break只跳出它所在的循环,不能跳出所有循环。

2、continue关键字

在这三种循环的循环内容中,continue的作用是:跳过本次循环中continue后面的代码,接着执行下一次循环的条件判断。

//以while循环为例
#include <stdio.h>
int main()
{
    int i = 0;
    while(i < 10)
    {
        i++;
        if(i == 5)
        {
           continue;//这里将break换成continue对比更明显
        }
        printf("%d ",i);//1 2 3 4 6 7 8 9 10
    }
    return 0;
}

 这段代码的输出结果是1 2 3 4 6 7 8 9 10,当i++的返回值等于5时if语句的表达式为真,执行continue;语句 当程序跑到continue时循环体内下面的语句将不再执行,直接跳到循环条件的位置(其中for循环比较特殊,对于for循环来说它会直接跳到表达式3的位置),判断真假-执行后续语句。

以上就是所有内容啦,希望小伙伴们都能学有所成,若有不足的地方,欢迎小伙伴们私信我,我将会同各位小伙伴一起进步!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值