while语句:
示例1:基本计数循环(从1数到10)
1.代码如下:
#include <stdio.h>
int main() {
int i = 1; // 初始化循环变量
// 当 i 小于等于 10 时,执行循环体
while (i <= 10) {
printf("%d ", i); // 输出当前数字
i++; // 更新循环变量(自增)
}
printf("\n循环结束\n");
return 0;
}
2.运行结果如下:
示例2:计算1到n的累加和(输入n)
1.代码如下:
#include <stdio.h>
int main() {
int n, sum = 0;
int i = 1; // 从 1 开始累加
printf("请输入一个正整数 n:");
scanf("%d", &n);
// 当 i 小于等于 n 时,累加 i 到 sum 中
while (i <= n) {
sum += i; // 等价于 sum = sum + i
i++;
}
printf("1 到 %d 的累加和为:%d\n", n, sum);
return 0;
}
2.运行结果如下:
示例3:求一个数的阶乘(n!)
1.代码如下:
#include <stdio.h>
int main() {
int n;
unsigned long long factorial = 1; // 用无符号长整型存储大结果
int i = 1;
printf("请输入一个非负整数:");
scanf("%d", &n);
// 处理特殊情况:0 的阶乘是 1
if (n < 0) {
printf("错误:负数没有阶乘!\n");
return 1; // 异常退出
}
// 计算 n! = 1*2*...*n
while (i <= n) {
factorial *= i; // 等价于 factorial = factorial * i
i++;
}
printf("%d 的阶乘是:%llu\n", n, factorial);
return 0;
}
2.运行结果如下:
示例4:猜数字游戏(循环直到猜对为止)
1.代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int target, guess;
// 生成 1-100 之间的随机数作为目标数字
srand(time(0));
target = rand() % 100 + 1;
printf("猜数字游戏(1-100):\n");
// 循环直到猜对为止(条件恒为真,用 break 退出)
while (1) {
printf("请输入你的猜测:");
scanf("%d", &guess);
if (guess > target) {
printf("猜大了!再试试\n");
} else if (guess < target) {
printf("猜小了!再试试\n");
} else {
printf("恭喜你,猜对了!答案就是 %d\n", target);
break; // 猜对后退出循环
}
}
return 0;
}
2.运行结果如下: