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

C语言while循环的用法(非常详细)

循环结构是编程中不可或缺的一部分,它允许我们重复执行某些代码块,直到满足特定条件为止。在C语言中,while 循环是一种常用的循环结构,它简单且强大,能够满足很多循环需求。

本文将深入探讨 while 循环的用法,包括常规的 while 循环和 do 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

在这个例子中,我们初始化变量i 为 1,然后在 while 循环中检查 i 是否小于或等于 5。只要条件成立,就打印 i 的值并将i增加 1。循环会一直执行,直到 i 变为 6,此时条件不再成立,循环结束。

while循环的注意事项

使用 while 循环时,有几点需要特别注意:


下面是一个计算 1~100 之和的例子,展示了如何正确使用 while 循环:

#include <stdio.h>

int main() {
    int sum = 0;
    int num = 1;
    
    while (num <= 100) {
        sum += num;
        num++;
    }
    
    printf("1到100的和是:%d\n", sum);
    return 0;
}

输出结果:

1到100的和是:5050

do while循环

do while 循环是 while 循环的一个变体,它的特点是循环体至少会执行一次,因为条件判断是在循环体执行之后进行的。

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

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

让我们用 do while 循环来实现一个简单的猜数字游戏:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int secretNumber, guess;
    srand(time(0));
    secretNumber = rand() % 100 + 1;  // 生成1到100之间的随机数
    
    do {
        printf("猜一个1到100之间的数:");
        scanf("%d", &guess);
        
        if (guess > secretNumber) {
            printf("太大了!再试一次。\n");
        } else if (guess < secretNumber) {
            printf("太小了!再试一次。\n");
        } else {
            printf("恭喜你,猜对了!\n");
        }
    } while (guess != secretNumber);
    
    return 0;
}

可能的运行结果:

猜一个1到100之间的数:34↙
太小了!再试一次。
猜一个1到100之间的数:60↙
太小了!再试一次。
猜一个1到100之间的数:80↙
太大了!再试一次。
猜一个1到100之间的数:70↙
太小了!再试一次。
猜一个1到100之间的数:75↙
太小了!再试一次。
猜一个1到100之间的数:77↙
太小了!再试一次。
猜一个1到100之间的数:78↙
恭喜你,猜对了!

在这个例子中,无论用户的第一次猜测是否正确,程序都会至少询问一次,这就是 do while 循环的优势所在,它保证了循环体至少执行一次。

while循环与do while循环的比较

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


这意味着,如果条件一开始就为假,while 循环的循环体可能一次都不会执行,而 do while 循环的循环体至少会执行一次。


下图直观地展示了 while 循环和 do while 循环的执行流程:
 

C语言while和do while的区别


该图清晰地展示了两种循环的执行流程。while 循环在进入循环体之前就进行条件判断,而 do while 循环则是在执行完循环体后才进行条件判断。

总结

while 循环和 do while 循环是C语言中非常实用的循环结构。while 循环适用于需要在循环开始前进行条件判断的情况,而 do while 循环则适用于至少需要执行一次循环体的场景。
 

在实际编程中,根据具体需求选择合适的循环结构,可以使代码更加简洁、高效。记住要注意避免无限循环,并确保循环条件最终会变为假,这样才能编写出健壮、可靠的程序。


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