《小菜狗 C 语言入门 + 进阶笔记》(19)while 循环

《小菜狗 C 语言入门 + 进阶笔记》目录:《小菜狗 C 语言入门 + 进阶笔记》(0)简介

1、引入

在 C 语言中,共有三大常用的程序结构:

  • 顺序结构:代码从前往后执行,没有任何“拐弯抹角”;
  • 选择结构:也叫分支结构,重点掌握 if else、switch 以及运算符;
  • 循环结构:重复执行同一段代码。

前面讲解了顺序结构和选择结构,本节开始讲解循环结构。

C 语⾔提供了 3 种循环语句(while、do while、for),while 就是其中⼀种,接下来就介绍⼀下 while 语句。

2、while 循环

while 语句的语法结构和 if 语句非常相似。

2.1、if 和 while 的对⽐
if (表达式)
    语句;

while (表达式)
    语句;

可见格式上与 if 语句相当的相似,并且只要给定 while 的表达式为真while 循环语句会重复执行所包含的语句

2.2、while 语法的标准写法
while (表达式) {
    语句块
}

流程图:
在这里插入图片描述

详细执行流程图:
在这里插入图片描述

白话解释:

表达式可以是一个单独的语句,也可以是几个语句组成的代码块,循环语句允许我们多次执行一个语句或语句组。

先计算“表达式”的值,当值为真(非 0)时, 执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……。

这个过程会一直重复,直到表达式的值为假(0),就退出循环,程序流将继续执行紧接着循环的下一条语句。

因此,我们通常将表达式称为循环条件,把语句块称为循环体整个循环的过程就是不停判断循环条件、并执行循环体代码的过程。

2.3、举例对比时刻

代码(1):

#include <stdio.h>
int main()
{
    if (1)
        printf("hehe\n");
    return 0;
}

解释说明:

if 语句的判断条件 1 成立(为真)打印⼀次 hehe 后,然后执行到 return 语句正常退出程序。

代码(2):

#include <stdio.h>
int main()
{
    while (1)
        printf("hehe\n");
    return 0;
}

解释说明:

while 循环语句的循环条件 1 一直成立(为真),while 循环会不停地打印输出 hehe,一直执行下去,永不结束成为死循环!或者直到用户强制关闭。

这就是他们的区别,if 语句只是判断效果,while 语句是实现循环效果的。

2.4、while 举例

用 while 循环计算 1 加到 100 的值:

#include <stdio.h>
int main(){
    int i=1, sum=0;
    while (i<=100) {
        sum+=i;
        i++;
    }
    printf("%d\n",sum);
    return 0;
}

运行结果:

5050

代码详细分析:

  1. 程序运行到 while 时,因为 i=1,i<=100 成立,所以会执行循环体;执行结束后 i 的值变为 2,sum 的值变为 1。
  2. 接下来会继续判断 i<=100 是否成立,因为此时 i=2,i<=100 成立,所以继续执行循环体;执行结束后 i 的值变为 3,sum 的值变为 3。
  3. 重复执行步骤 2)。
  4. 当循环进行到第 100 次,i 的值变为 101,sum 的值变为 5050;因为此时 i<=100 不再成立,所以就退出循环,不再执行循环体,转而执行 while 循环后面的代码。

3、do…while 循环

do…while 语句的语法结构和 while 语句非常相似。

3.1、do…while 和 while 的对⽐

while 和 do while 都是 C 语言中的循环语句,它们的主要区别在于循环体执行的顺序。

  • 不像 while 循环,while 循环是先判断,条件如果满足就进⼊循环,执行循环语句。如果不满足就跳出循环;
  • 而 do…while 循环是在循环的尾部检查它的条件

do…while 循环是先直接进⼊循环体,执行循环语句,然后再执行 while 后的判断表达式。表达式为真,就会进行下⼀次,表达式为假,则不再继续循环。

while: 你欠我钱,我走路上,前面一人,我先看清楚这个人是不是你,不是就不打。

do while: 你欠我钱,我走路上,前面一人,我不管这个人是不是你,先打再说。

而且:

do…while 循环与 while 循环类似,但是 do...while 循环会确保至少执行一次循环

对比流程图:
在这里插入图片描述

详细执行流程图:
在这里插入图片描述

3.2、do…while 语法的标准写法
do
{
   语句块
} while ( 表达式 );

如果条件为真,控制流会跳转回上面的 do,然后重新执行循环中的 表达式。这个过程会不断复,直到给定条件变为假为止。

3.3、举例

相比前面 2.3 小节,这里我们用 do-while 循环来计算 1 加到 100 的值:

代码:

#include <stdio.h>
int main(){
    int i=1, sum=0;
    do {
        sum+=i;
        i++;
    } while (i<=100);
    printf("%d\n", sum);
    return 0;
}

运行结果:

5050

注意while(i<=100);最后的分号;,这个必须要有。

while 循环和 do-while 各有特点,大家可以适当选择,实际编程中使用 while 循环较多。

4、do while 至少执行一次循环体

4.1、while 循环的实例程序
#include <stdio.h>

int main() {
    int i = 5;
    while (i < 5) {
        printf("i = %d\n", i);
    }

    return 0;
}
  • 可以看到,没有输出结果,直接退出。
4.2、do while 循环的实例程序
#include <stdio.h>

int main() {
    int i = 5;
    do {
        printf("i = %d\n", i);
    } while (i < 5);

    return 0;
}

输出结果为:

i = 5
  • 可以看到,do while 循环先执行了循环体,然后再检查循环条件。
  • 即使条件一开始就为假,循环体也会至少执行一次。

总的来说,while 循环适用于在循环之前检查条件,而 do while 循环适用于至少执行一次循环体,不管条件是否成立。

5、循环整体思路

设置一个带有变量的循环条件,也即一个带有变量的表达式;在循环体中额外添加一条语句,让它能够改变循环条件中变量的值。

这样,随着循环的不断执行,循环条件中变量的值也会不断变化,终有一个时刻,循环条件不再成立,整个循环就结束了。

《小菜狗 C 语言入门 + 进阶笔记》目录:《小菜狗 C 语言入门 + 进阶笔记》(0)简介


每日一更!

公众号、CSDN等博客:小菜狗编程笔记

谢谢点赞关注哈!目前在飞书持续优化更新~

日更较慢有需要完整笔记请私我,C/C++/数据结构-算法/单片机51-STM32-GD32-ESP32/嵌入式/Linux操作系统/uboot/Linux内核-驱动-应用/硬件入门-PCB-layout/Python/后期小程序和机器学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菜狗编程笔记

你的鼓励将是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值