在C语言中,循环结构是实现重复执行代码块的重要手段。其中,while循环是一种基础且实用的循环方式,对于初学者来说,掌握它的使用方法是迈向编程大门的重要一步。

while循环的语法结构

while循环的基本语法非常简洁,其格式如下:

while (条件表达式) {
    // 循环体,需要重复执行的代码
}

这里的条件表达式是一个布尔表达式,结果要么为真(非零),要么为假(零)。当条件表达式的值为真时,循环体中的代码会被执行;执行完循环体后,会再次检查条件表达式的值,如果仍然为真,则继续执行循环体,如此反复,直到条件表达式的值为假,此时循环结束,程序将继续执行循环后面的代码。

while循环的用法

下面通过一个简单的示例来展示 while 循环的具体用法。假设我们要计算从 1 到 10 的整数之和,可以使用 while 循环来实现:

/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#include <stdio.h>

int main() {
    int i = 1; // 初始化计数器
    int sum = 0; // 初始化累加和
    while (i <= 10) {
        sum = sum + i; // 累加当前的 i 值
        i++; // 计数器加 1
    }
    printf("1 到 10 的整数之和为: %d\n", sum);
    return 0;
}

代码解释

  1. int i = 1;:声明并初始化一个整数变量 i,作为计数器,初始值为 1。
  2. int sum = 0;:声明并初始化一个整数变量 sum,用于存储累加和,初始值为 0。
  3. while (i <= 10):条件表达式,只要 i 的值小于或等于 10,就继续执行循环。
  4. sum = sum + i;:将当前 i 的值累加到 sum 中。
  5. i++;:计数器 i 的值加 1。
  6. printf("1 到 10 的整数之和为: %d\n", sum);:循环结束后,打印累加和。

输出结果

1 到 10 的整数之和为: 55

while 循环和do while循环的区别

do while 循环的语法结构如下:

do {
    // 循环体,需要重复执行的代码
} while (条件表达式);

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

  • while 循环是先判断条件表达式的值,再决定是否执行循环体;
  • do while 循环是先执行一次循环体,然后再判断条件表达式的值。

这意味着,do while 循环的循环体至少会被执行一次,即使条件表达式一开始就为假。

下面是一个 do while 循环的示例,同样计算从 1 到 10 的整数之和:

/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#include <stdio.h>

int main() {
    int i = 1; // 初始化计数器
    int sum = 0; // 初始化累加和
    do {
        sum = sum + i; // 累加当前的 i 值
        i++; // 计数器加 1
    } while (i <= 10);
    printf("1 到 10 的整数之和为: %d\n", sum);
    return 0;
}

在这个示例中,即使条件 i <= 10 一开始就不成立,循环体也会先执行一次。

while 循环和for循环的区别

for 循环的语法结构如下:

for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体,需要重复执行的代码
}

while 循环和 for 循环都可以实现循环的功能,但它们的使用场景略有不同:

  • for 循环通常用于已知循环次数的情况,它将初始化、条件判断和更新操作都集中在一个语句中,结构更加紧凑;
  • while 循环则更适用于循环次数不确定,需要根据某个条件来决定是否继续循环的情况。

例如,使用 for 循环计算从 1 到 10 的整数之和的代码如下:

/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#include <stdio.h>

int main() {
    int sum = 0; // 初始化累加和
    for (int i = 1; i <= 10; i++) {
        sum = sum + i; // 累加当前的 i 值
    }
    printf("1 到 10 的整数之和为: %d\n", sum);
    return 0;
}

while循环的嵌套

while 循环可以嵌套使用,即在一个 while 循环的循环体中再包含另一个 while 循环。嵌套循环常用于处理二维数据或打印复杂的图案。

下面是一个使用嵌套 while 循环打印乘法表的示例:

/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#include <stdio.h>

int main() {
    int i = 1; // 外层循环计数器
    while (i <= 9) {
        int j = 1; // 内层循环计数器
        while (j <= i) {
            printf("%d x %d = %d\t", j, i, i * j);
            j++; // 内层循环计数器加 1
        }
        printf("\n"); // 换行
        i++; // 外层循环计数器加 1
    }
    return 0;
}

代码解释

  1. 外层 while 循环控制行数,从 1 到 9。
  2. 内层 while 循环控制列数,从 1 到当前行数。
  3. printf("%d x %d = %d\t", j, i, i * j);:打印乘法表的一项。
  4. printf("\n");:每行结束后换行。

总结

while 循环是 C 语言中一种重要的循环结构,它简单灵活,适用于多种编程场景。

通过与 do while 循环和 for 循环的对比,我们可以更好地理解它们的特点和适用范围,从而在实际编程中根据具体需求选择合适的循环结构。

while 循环的嵌套使用可以帮助我们处理更复杂的问题。希望初学者通过本文的学习,能够熟练掌握 while 循环的使用方法,为后续的编程学习打下坚实的基础。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐