掌握while循环:C语言编程基础
目录
一、while循环简介
二、if和while的对比
语法结构对比:
实际代码对比:
三、while语句的执行流程
while循环的执行流程如下:
流程图表示:
四、while循环实践
练习:在屏幕上打印1~10的值
五、进阶练习
题目:输入一个正整数,逆序打印这个整数的每一位
解题思路:
参考代码:
代码改进建议:
一、while循环简介
C语言提供了3种循环语句,while循环是其中最基础的一种。while语句的语法结构与if语句非常相似,但功能却大不相同。
二、if和while的对比
语法结构对比:
if(表达式)语句;while(表达式)语句; // 如果循环体想包含更多语句,可以加上大括号
实际代码对比:
// 代码1 - if语句
#include <stdio.h>
int main()
{if(1)printf("hehe\n"); // if条件满足,只打印一次hehereturn 0;
}// 代码2 - while语句
#include <stdio.h>
int main()
{while(1)printf("hehe\n"); // while条件满足,会不断循环打印hehereturn 0;
}
关键区别:if语句只会执行一次条件满足的代码,而while语句会重复执行,直到条件不再满足。
三、while语句的执行流程
while循环的执行流程如下:
-
首先判断表达式值:
-
如果值为0(假),循环立即结束
-
如果值不为0(真),执行循环体语句
-
-
循环体执行完毕后,再次判断表达式
-
重复上述过程,直到表达式值为0
流程图表示:
四、while循环实践
练习:在屏幕上打印1~10的值
#include <stdio.h>
int main()
{int i = 1; // 初始化计数器while(i <= 10) // 循环条件{printf("%d ", i); // 打印当前值i = i + 1; // 更新计数器}return 0;
}
程序分析:
-
初始化i为1
-
检查i是否<=10
-
如果条件为真,执行循环体(打印i并使i增加1)
-
重复步骤2-3,直到i>10时循环结束
五、进阶练习
题目:输入一个正整数,逆序打印这个整数的每一位
示例:
-
输入:1234,输出:4 3 2 1
-
输入:521,输出:1 2 5
解题思路:
-
获取最低位:使用n%10运算,如1234%10=4
-
去掉最低位:使用n/10运算,如1234/10=123
-
循环上述两步,直到n变为0
参考代码:
#include <stdio.h>
int main()
{int n = 0;printf("请输入一个正整数:");scanf("%d", &n);while(n != 0){printf("%d ", n % 10); // 打印当前最低位n /= 10; // 去掉已经处理的最低位}return 0;
}
代码改进建议:
-
添加输入验证,确保输入的是正整数
-
可以在最后添加换行,使输出更整洁
-
考虑处理n=0的特殊情况
#include <stdio.h>
int main()
{int n = 0;printf("请输入一个正整数:");scanf("%d", &n);if(n == 0) {printf("0\n");return 0;}if(n < 0) {printf("输入必须是正整数!\n");return 1;}while(n != 0){printf("%d ", n % 10);n /= 10;}printf("\n"); // 添加换行return 0;
}