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 循环的关键在于正确设置循环条件,以及确保循环体中有适当的更新语句,以避免陷入无限循环。