首页 > 编程笔记 > C语言笔记

C语言while和do while的区别(附带实例)

循环结构是编程中的重要概念,C语言提供了多种循环方式,其中 while 和 do while 是两种常用的循环语句。虽然它们看起来相似,但在执行逻辑和使用场景上有着明显的区别,让我们深入探讨这两种循环结构的特点和应用。

while 循环

while 循环是一种前测试循环结构,它在执行循环体之前先检查条件是否为真:如果条件为真,则执行循环体;否则,跳过循环体继续执行后面的代码。


while 循环的基本语法如下:

while (条件) {
    // 循环体
}


让我们看一个使用 while 循环的例子,该程序将打印出 1 到 5 的数字:

#include <stdio.h>

int main() {
    int i = 1;
    while (i <= 5) {
        printf("%d ", i);
        i++;
    }
    return 0;
}

这段代码的输出结果是:

1 2 3 4 5

do while 循环

与 while 循环不同,do while 循环是一种后测试循环结构,它会先执行一次循环体,然后再检查条件:如果条件为真,则继续执行循环;否则,退出循环。


do while 循环的基本语法如下:

do {
    // 循环体
} while (条件);


让我们用 do while 循环重写上面的例子:

#include <stdio.h>

int main() {
    int i = 1;
    do {
        printf("%d ", i);
        i++;
    } while (i <= 5);
    return 0;
}

这段代码的输出结果与之前相同:

1 2 3 4 5

主要区别

while 和 do while 循环的关键区别在于条件检查的时机:


为了更好地理解这一区别,让我们看一个例子,其中初始条件为假:

#include <stdio.h>

int main() {
    int i = 10;
    
    // while 循环
    while (i < 5) {
        printf("while 循环:%d\n", i);
        i++;
    }
    
    i = 10; // 重置 i 的值
    
    // do while 循环
    do {
        printf("do while 循环:%d\n", i);
        i++;
    } while (i < 5);
    
    return 0;
}

这段代码的输出结果是:

do while 循环:10

在这个例子中,while 循环一次都没有执行,因为初始条件 (i < 5) 为假。而 do while 循环执行了一次,尽管条件为假,因为它在执行循环体后才检查条件。
 

选择使用 while 还是 do while 循环取决于具体的编程需求:


do while 循环特别适用于需要在处理后再决定是否继续的情况,例如菜单驱动的程序或用户输入验证。


声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。