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

c语言while循环语句用法举例(5个)

在C语言中,while 是一种常用且灵活的循环结构,用于重复执行特定的代码块,直到给定的条件不再满足。接下来,让我们深入探讨 while 循环的用法,并通过一系列示例来加深理解。


while 循环的基本语法如下:

while (条件) {
    // 循环体
    // 当条件为真时重复执行的代码
}

循环开始时,程序会评估括号中的条件,如果条件为真(非零值),则执行循环体中的代码。执行完毕后,程序会再次检查条件。这个过程会一直重复,直到条件变为假(零值)。


让我们通过一些实际的例子来探索 while 循环的不同应用场景。

1. 基本计数器

我们先从一个简单的计数器开始,这个例子将打印出 1 到 5 的数字:

#include <stdio.h>

int main() {
    int count = 1;
    
    while (count <= 5) {
        printf("%d ", count);
        count++;
    }
    
    return 0;
}

输出结果:

1 2 3 4 5

在这个例子中,我们初始化一个计数器 count 为 1。while 循环的条件是 count <= 5,意味着只要 count 小于或等于 5,循环就会继续执行。在每次循环中,我们打印当前的 count 值,然后将其递增。这个过程会一直持续到 count 变为 6,此时条件不再满足,循环结束。

2. 用户输入验证

while 循环常用于验证用户输入。下面的例子要求用户输入一个 1 到 10 之间的数字,如果输入无效,程序会一直提示重新输入:

#include <stdio.h>

int main() {
    int number;
    
    printf("请输入一个 1 到 10 之间的数字:");
    scanf("%d", &number);
    
    while (number < 1 || number > 10) {
        printf("无效输入。请重新输入一个 1 到 10 之间的数字:");
        scanf("%d", &number);
    }
    
    printf("你输入的有效数字是:%d\n", number);
    
    return 0;
}

在这个例子中,while 循环会一直执行,直到用户输入一个有效的数字(1 到 10 之间)。这种方式确保了程序只接受符合要求的输入。

3. 计算阶乘

while 循环也可以用于执行数学计算,下面的例子计算一个给定数字的阶乘:

#include <stdio.h>

int main() {
    int number, factorial = 1;
    int temp;
    
    printf("请输入一个正整数:");
    scanf("%d", &number);
    
    temp = number;
    
    while (temp > 0) {
        factorial *= temp;
        temp--;
    }
    
    printf("%d 的阶乘是 %d\n", number, factorial);
    
    return 0;
}

在这个例子中,我们使用 while 循环来计算阶乘。循环从输入的数字开始,每次迭代都将当前数字与累积的阶乘相乘,然后将数字减 1。这个过程一直持续到数字变为 0。

4. 菜单驱动的程序

while 循环可以用来创建一个简单的菜单驱动程序,允许用户多次选择操作:

#include <stdio.h>

int main() {
    int choice;
    
    while (1) {  // 无限循环
        printf("\n菜单:\n");
        printf("1. 打印 'Hello'\n");
        printf("2. 打印 'World'\n");
        printf("3. 退出\n");
        printf("请选择(1-3):");
        scanf("%d", &choice);
        
        switch (choice) {
            case 1:
                printf("Hello\n");
                break;
            case 2:
                printf("World\n");
                break;
            case 3:
                printf("再见!\n");
                return 0;
            default:
                printf("无效选择,请重试。\n");
        }
    }
    
    return 0;
}

这个例子使用了一个无限 while 循环(条件始终为真)来反复显示菜单并处理用户的选择。只有当用户选择退出选项时,程序才会终止。

5. 文件处理

while 循环在文件处理中也非常有用,特别是当我们需要逐行读取文件内容时:

#include <stdio.h>

int main() {
    FILE *file;
    char line[100];
    
    file = fopen("example.txt", "r");
    if (file == NULL) {
        printf("无法打开文件\n");
        return 1;
    }
    
    while (fgets(line, sizeof(line), file) != NULL) {
        printf("%s", line);
    }
    
    fclose(file);
    return 0;
}

在这个例子中,while 循环会一直读取文件的每一行,直到达到文件末尾(fgets 返回 NULL)。这种方法可以有效地处理不知道具体行数的文件。
 

通过这些多样化的例子,我们可以看到 while 循环在C语言中的灵活性和多样性,它可以用于简单的计数、用户输入验证、复杂的数学计算、程序流程控制,甚至文件操作。
 

最后请记住,while 循环的关键在于正确设置循环条件,以及确保循环体中有适当的更新语句,以避免陷入无限循环。

相关文章