首页 > 编程笔记

C语言while循环

while 是 C语言中的一种循环语句,用于重复执行一段代码块,直到指定条件不成立为止。在本篇文章中,我们将详细介绍 while 循环的使用方法及其运行结果。

while 循环语法结构如下:
while (condition) {
    // 待执行的代码块
}
其中 condition 是指循环的条件,当其值为真(非零)时,代码块将被执行;当其值为假(零)时,循环结束。

下面我们以计算 1~100 的累加和为例,来介绍 while 循环的基本用法。
#include <stdio.h>

int main() {
    int sum = 0;
    int i = 1;
    while (i <= 100) {
        sum += i;
        i++;
    }
    printf("1~100 的累加和为:%d\n", sum);
    return 0;
}
在上述代码中,我们先定义了变量 sum 和 i,并初始化 sum 为 0,i 为 1。接着使用 while 循环语句,只要 i 的值小于等于 100,就将 i 加到 sum 上,并将 i 加 1。当 i 的值大于 100 时,循环结束。最后我们输出 sum 的值,即为 1~100 的累加和。

运行结果如下:

1~100 的累加和为:5050

在这个例子中,我们使用了 while 循环来计算累加和,但其实 for 循环也可以完成同样的任务。但是在实际应用中, while 循环通常用于需要根据条件判断是否继续循环的情况下,例如读取文件、输入处理等。

下面我们再来看一个更复杂的例子。
#include <stdio.h>

int main() {
    int num;
    int sum = 0;
    printf("请输入一个整数:");
    scanf("%d", &num);
    while (num != 0) {
        sum += num % 10;
        num /= 10;
    }
    printf("各位数字之和为:%d\n", sum);
    return 0;
}
在上述代码中,我们要求用户输入一个整数,然后计算该整数各位数字之和。我们使用了 while 循环来实现这个功能,只要输入的整数不等于 0,就将其个位数加到 sum 上,并将其除以 10。当输入的整数为 0 时,循环结束。

运行结果如下:

请输入一个整数:12345
各位数字之和为:15

在这个例子中,我们可以看到 while 循环的灵活性和可扩展性。我们可以通过改变循环条件和代码块,当 while 循环内的条件表达式判断为真时,循环体将被执行。当循环体执行完后,程序控制将返回到条件表达式并重新评估它。如果条件表达式仍然为真,则循环体将再次执行,否则循环将被终止,程序将继续执行循环后面的代码。

以下是一个使用 while 循环输出数字的简单示例:
#include <stdio.h>

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

    return 0;
}
在上面的示例中,我们初始化一个整数变量 i 为 0,并在 while 循环内输出i的值,然后将 i 增加 1,直到i的值不小于 10,循环将停止。输出结果如下:

0
1
2
3
4
5
6
7
8
9

除了像上面的示例一样在循环内增加计数器变量的值,while 循环也可以用于处理其他类型的条件。例如,可以使用 while 循环从文件中读取数据,直到文件的结尾被达到。下面是一个读取文件中所有字符并输出的示例:
#include <stdio.h>

int main() {
    FILE *fp;
    char c;

    fp = fopen("input.txt", "r");
    if(fp == NULL) {
        printf("无法打开文件\n");
        return 1;
    }

    while((c = getc(fp)) != EOF) {
        putchar(c);
    }

    fclose(fp);

    return 0;
}
在上面的示例中,我们使用了一个 while 循环来读取文件中的字符,直到 getchar 函数返回 EOF(文件结束)为止。输出结果将是输入文件的内容。

推荐阅读