C 语言 while 和 do...while 循环

在本教程中,您将在示例的帮助下学习在C语言编程中创建while和do ... while循环。

在编程中,循环用于重复代码块,直到满足指定条件为止。

C语言编程具有三种类型的循环。

  1. for循环

  2. while循环

  3. do... while循环

在上一教程中,我们了解了for循环。在本教程中,我们将学习while和do..while循环。

while循环

while循环的语法为:

示例

cpp 复制代码
while (testExpression) 
{
    // 循环体中的语句 
}

while循环如何工作?

  • while循环计算在括号内测试表达式(testExpression)。

  • 如果测试表达式(testExpression)为true,则执行while循环体内的语句。然后,再次评估测试表达式(testExpression)。

  • 该过程一直进行到测试表达式(testExpression)被评估为false为止。

  • 如果测试表达式为假(false),则循止(结束)。

While循环流程图

示例1:while循环

cpp 复制代码
//打印从1到5的数字

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

    return 0;
}

输出结果

cpp 复制代码
1
2
3
4
5

在这里,我们已初始化i为1。

  1. 当i为1时,测试表达式 i <= 5 为true。因此,while执行循环的主体。在屏幕上打印1,并将i其值增加到2。

  2. 现在i是2,测试表达式 i <= 5 再次为true。while循环主体将再次执行。在屏幕上打印2,并将i其值增加到3。

  3. 该过程一直进行到i为6时,此时测试表达式 i <= 5 为false,循环终止。

do... while 循环

do..while循环类似于while循环,但有一个重要区别。do...while循环主体至少执行一次。执行一次后,才对测试表达式求值。

do...while循环的语法为:

示例

cpp 复制代码
do
{
   //循环体内的语句
}
while (testExpression);

do... while循环如何工作?

  • do ... while循环的主体执行一次。只有这样执行一次后,才对测试表达式求值。

  • 如果测试表达式(testExpression)为true,则再次执行循环主体并评估测试表达式(testExpression)。

  • 这个过程一直进行到测试表达式变为false。

  • 如果测试表达式为false,则循环结束。

do ... while循环流程图

示例2:do ... while循环

cpp 复制代码
//程序添加数字,直到用户输入零
#include <stdio.h>
int main()
{
    double number, sum = 0;

    //循环的主体至少执行一次
    do
    {
        printf("输入一个数字: ");
        scanf("%lf", &number);
        sum += number;
    }
    while(number != 0.0);

    printf("总和 = %.2lf",sum);

    return 0;
}

输出结果

cpp 复制代码
输入一个数字: 1.5
输入一个数字: 2.4
输入一个数字: -3.4
输入一个数字: 4.2
输入一个数字: 0
总和 = 4.70
相关推荐
励志成为嵌入式工程师3 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
Peter_chq4 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
hikktn5 小时前
如何在 Rust 中实现内存安全:与 C/C++ 的对比分析
c语言·安全·rust
观音山保我别报错5 小时前
C语言扫雷小游戏
c语言·开发语言·算法
小林熬夜学编程8 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
墨墨祺8 小时前
嵌入式之C语言(基础篇)
c语言·开发语言
躺不平的理查德8 小时前
数据结构-链表【chapter1】【c语言版】
c语言·开发语言·数据结构·链表·visual studio
幼儿园园霸柒柒9 小时前
第七章: 7.3求一个3*3的整型矩阵对角线元素之和
c语言·c++·算法·矩阵·c#·1024程序员节
好想有猫猫9 小时前
【51单片机】串口通信原理 + 使用
c语言·单片机·嵌入式硬件·51单片机·1024程序员节
摆烂小白敲代码10 小时前
背包九讲——背包问题求方案数
c语言·c++·算法·背包问题·背包问题求方案数