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