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
相关推荐
Rabitebla15 分钟前
C++ 内存管理全面复习:从内存分布到 operator new/delete
java·c语言·开发语言·c++·算法·leetcode
SilentSlot34 分钟前
【C/C++】手写 DPDK 协议栈(八):用五元组 Hash 加速连接定位
c语言·c++·哈希算法
菜鸟的升级路1 小时前
C语言栈刷题:LeetCode 20 有效的括号完整解题笔记
c语言·笔记·leetcode
冻柠檬飞冰走茶1 小时前
PTA基础编程题目集 7-13 日K蜡烛图(C语言实现)
c语言·开发语言·数据结构·算法
SilentSlot4 小时前
【C/C++】手写 DPDK 协议栈(十二):TCP 并发与自实现 epoll 的就绪事件分发
c语言·c++·tcp/ip
SilentSlot4 小时前
【C/C++】手写 DPDK 协议栈(六):TCP 三次握手、状态机与数据回显
c语言·c++·tcp/ip
j7~4 小时前
【C语言】《C语言自定义类型(结构体+联合体+枚举类型)》--详解
c语言·开发语言·深度学习·结构体·位段·联合体·枚举类型
躺柒21 小时前
读半导体简史08大型机
linux·服务器·c语言·数据库·unix·ibm
十月的皮皮21 小时前
STM32从零到量产开发:四路继电器工业控制模块开发— 继电器模块bsp_di.h与 bsp_di.c文件
c语言·stm32·stm32cubemx·hal库
wuyk5551 天前
67.嵌入式C语言进阶:结构体指针实战指南——STM32外设、传感器数据访问的高效技巧
c语言·开发语言·stm32·单片机