C语言while循环如何正确使用?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 C语言 正文

while 循环是什么?

while 循环是一种“当型”循环,它的核心思想是:当某个条件为真时,就反复执行一段代码;当条件变为假时,循环就停止了。

c语言while怎么用
(图片来源网络,侵删)

你可以把它想象成一个“守门员”,只有你满足它设定的条件(你有门票”),它才允许你进入(执行循环代码)。


while 循环的基本语法

while 循环的结构非常简单:

while (条件表达式) {
    // 循环体
    // 当条件表达式为真时,这里面的代码会被反复执行
}

语法解析:

  1. while:这是关键字,告诉编译器这是一个 while 循环。
  2. 条件表达式:这是一个放在括号里的表达式,i < 10flag == 1,这个表达式会进行布尔运算,结果要么是真(在 C 语言中,非零值代表真,通常用 1),要么是假(0)。
  3. 花括号用来包裹循环体,即需要重复执行的代码块,如果循环体只有一行代码,可以省略花括号,但为了代码清晰和防止错误,强烈建议始终使用花括号

while 循环的执行流程

理解 while 循环的执行顺序至关重要,它遵循以下步骤:

c语言while怎么用
(图片来源网络,侵删)
  1. 判断条件:程序会计算 中的条件表达式
  2. 检查结果
    • 如果结果为(非零),程序会执行 中的循环体代码。
    • 如果结果为(零),程序会跳过 中的代码,直接执行 while 循环后面的下一条语句。
  3. 循环体执行后:如果执行了循环体,在循环体代码执行完毕后,程序会回到第 1 步,再次判断条件表达式。
  4. 重复:这个过程会一直重复,直到某次条件判断结果为假,循环才终止。

一个简单的流程图:

graph TD
    A[开始] --> B{判断条件表达式};
    B -- 为真 --> C[执行循环体];
    C --> B;
    B -- 为假 --> D[结束循环,执行后续代码];
    D --> E[结束];

代码示例

示例 1:基础的 while 循环(打印 1 到 5)

这是一个最经典的入门示例,用于展示循环的基本用法。

#include <stdio.h>
int main() {
    int i = 1; // 1. 初始化循环变量
    // 2. 判断条件:只要 i 小于等于 5,循环就继续
    while (i <= 5) {
        // 3. 循环体:打印当前的 i
        printf("i 的值是: %d\n", i);
        // 4. 更新循环变量:这是最关键的一步!
        // 如果没有这一行,i 将永远是 1,条件 i <= 5 永远为真,导致无限循环。
        i = i + 1; // 或者写成 i++;
    }
    printf("循环结束!\n");
    return 0;
}

执行过程分析:

  1. i 初始化为 1
  2. while (1 <= 5) 为真,进入循环,打印 i 的值是: 1
  3. i 更新为 2
  4. while (2 <= 5) 为真,进入循环,打印 i 的值是: 2
  5. i 更新为 3
  6. ... 重复此过程 ...
  7. i 更新为 5
  8. while (5 <= 5) 为真,进入循环,打印 i 的值是: 5
  9. i 更新为 6
  10. while (6 <= 5) 为假,循环终止。
  11. 程序执行 printf("循环结束!\n");

示例 2:无限循环

如果你忘记在循环体内更新变量,或者条件永远为真,就会发生无限循环,在开发中要尽量避免这种情况。

c语言while怎么用
(图片来源网络,侵删)
#include <stdio.h>
int main() {
    int i = 1;
    // 这个循环永远不会结束,因为 i 的值永远不会改变
    while (i > 0) {
        printf("这是一个无限循环!\n");
        // 如果没有 i-- 或 i++,这里就会一直打印下去
        // 可以按 Ctrl+C 来强制终止程序
    }
    printf("这行代码永远不会被执行,\n");
    return 0;
}

示例 3:基于用户输入的循环

while 循环非常适合处理不确定次数的重复任务,比如读取用户输入,直到用户输入一个特定的值。

#include <stdio.h>
int main() {
    int number;
    printf("请输入一个数字(输入 0 退出):");
    // scanf 的返回值是成功读取的变量个数
    // 只要用户输入的不是 0,循环就继续
    while (scanf("%d", &number) == 1 && number != 0) {
        printf("你输入了: %d\n", number);
        printf("请输入下一个数字(输入 0 退出):");
    }
    printf("程序结束,\n");
    return 0;
}

while 循环的关键点总结

  1. 初始化:在 while 循环之前,必须初始化循环控制变量(如上面的 int i = 1;)。

  2. 条件判断: 中的条件是循环的“开关”,它必须是能够得到真或假的表达式。

  3. 循环体: 中的代码是需要重复执行的部分。

  4. 更新变量:在循环体内部,必须有改变循环控制变量的代码(如 i++),这是让循环能够趋向于终止的关键,否则极易造成无限循环。

  5. while vs do-while

    • while 循环是先判断,后执行,如果第一次条件就为假,循环体一次都不会执行。
    • do-while 循环是先执行,后判断,循环体至少会执行一次,然后再判断条件是否继续。

    do-while 示例:

    int j = 10;
    do {
        printf("do-while 循环至少执行一次,j = %d\n", j);
    } while (j < 5); // 尽管条件为假,上面的代码还是执行了

练习

尝试编写一个程序,实现以下功能: ** 使用 while 循环计算 1 到 100 所有整数的和。

思路:

  1. 需要一个变量来存放总和,sum,初始值为 0
  2. 需要一个循环变量 i,从 1 开始,到 100 结束。
  3. 在循环中,将 i 的值累加到 sum 上。
  4. 每次循环后,i 的值加 1
  5. 循环结束后,打印 sum 的值。

参考代码:

#include <stdio.h>
int main() {
    int i = 1;      // 循环变量,从 1 开始
    int sum = 0;    // 用于存储总和,初始为 0
    // 当 i 小于等于 100 时,循环继续
    while (i <= 100) {
        sum = sum + i; // 将 i 的值加到 sum 上
        i = i + 1;     // 更新 i,准备下一次循环
    }
    printf("1 到 100 的和是: %d\n", sum);
    return 0;
}

希望这个详细的解释能帮助你完全掌握 C 语言中的 while 循环!多写代码练习是掌握它的最好方法。

-- 展开阅读全文 --
头像
dede在线招聘插件
« 上一篇 今天
织梦数据库乱码如何还原?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]