首页 > 编程笔记 > C语言笔记 阅读:77

C语言while循环的用法(非常详细,附带实例)

while 是 C 语言中的一种循环控制结构,用于在特定条件为真时重复执行一段代码。
 

while 循环的语法如下:

while (条件表达式) {
    // 循环体:条件为真时执行的代码
}

while 循环的核心是一个条件表达式,当条件为真(非 0)时,循环体内的代码会反复执行,直到条件变为假(0)。while 循环的运行流程是:
  1. 检查 条件表达式
  2. 若为真,执行循环体,然后返回步骤 1。
  3. 若为假,退出循环,继续执行后续代码。


也就是说,while 循环的逻辑是:“只要条件成立,就继续执行。” 

在 C语言中,while 循环特别适合那些循环次数不固定、依赖条件判断的场景。接下来,我们将深入探讨 while 循环的用法、使用场景以及注意事项。


【实例】简单计数。
#include <stdio.h>

int main(void) {
    int count = 0;
    while (count < 5) {
        printf("计数:%d\n", count);
        count++;
    }
    return 0;
}

输出结果:

计数:0
计数:1
计数:2
计数:3
计数:4

count < 5 初始为真,循环体执行 5 次,每次 count 自增,直到 count = 5,条件为假,循环结束。

while常见使用场景

1) 已知次数的循环

虽然 while 更适合动态条件,但也可以用于固定次数的循环。

#include <stdio.h>

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

输出结果:

1 2 3 4 5 6 7 8 9 10

2) 累加计算

while 实现累加或求和。

#include <stdio.h>

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

输出结果:

1 到 100 的和是:5050

sum 累加每次的 num,直到 num > 100

3) 输入验证

while 常用于等待用户输入符合条件。

#include <stdio.h>

int main(void) {
    int num;
    printf("请输入一个正数:");
    scanf("%d", &num);
    while (num <= 0) {
        printf("输入错误,请输入一个正数:");
        scanf("%d", &num);
    }
    printf("你输入的正数是:%d\n", num);
    return 0;
}

输出结果(示例输入):

请输入一个正数:-5
输入错误,请输入一个正数:0
输入错误,请输入一个正数:3
你输入的正数是:3

C语言do-while循环

C语言还提供 do-while 循环,与 while 的区别是条件后置,至少执行一次循环体。

do {
    // 循环体:先执行一次
} while (条件表达式);

【实例】do-while 用法。

#include <stdio.h>

int main(void) {
    int num = 0;
    do {
        printf("num = %d\n", num);
        num++;
    } while (num < 3);
    return 0;
}

输出结果:

num = 0
num = 1
num = 2

即使初始 num = 0,循环体先执行一次,然后检查条件。

与for循环的对比

特性 while for
初始化 需手动在循环外定义 包含在语法中
条件检查 每次循环前 每次循环前
更新语句 需手动在循环体内 包含在语法中
适用场景 动态条件 固定次数循环

while注意事项

1) 避免死循环

若条件永远为真,会导致死循环。

// 错误示例
while (1) { printf("无限循环\n"); } // 死循环

解决方法:确保条件最终会变为假,或使用 break 跳出。

2) break和continue

break 立即退出循环,continue 跳过本次循环剩余部分。

#include <stdio.h>

int main(void) {
    int i = 0;
    while (i < 10) {
        i++;
        if (i == 3) continue; // 跳过 3
        if (i == 7) break;    // 在 7 退出
        printf("%d ", i);
    }
    printf("\n");
    return 0;
}

输出结果:

1 2 4 5 6

3) 条件表达式类型

条件必须返回整数值(非 0 为真,0 为假),避免使用浮点数直接比较。

// 不推荐
float f = 0.1;
while (f < 1.0) { ... } // 浮点误差可能导致问题

总结

while 是 C 语言程序常用的一种循环结构,适合处理条件动态变化的重复任务。

学习 while 循环语句,除了它本身的语法外,你还需要掌握 do-while 变体以及 breakcontinue 的用法,才能灵活控制程序的执行流程。

在 C 语言程序中使用 while 循环语句时,要避免出现死循环的情况。读完本文,恭喜你已经彻底掌握 while 循环语句的用法。

相关文章