三、C语言中的分支与循环—while循环 (5)
2024-01-02 04:23:04
?本章分支结构的学习内容如下:
三、C语言中的分支与循环—switch语句(4)分支结构 完???
本章循环结构的学习内容如下:
三、C语言中的分支与循环—break和continue语句(8)循环结构 完??
现在我们开始循环结构的学习:
1.while循环基本语法
在C语言中,`while` 循环是一种基本的循环结构,用于重复执行一段代码,直到给定的条件变为假(即非零)。其基本语法如下:
while (condition) {
// 循环体
}
这里的 `condition` 是一个布尔表达式。如果 `condition` 的结果为真(非零),则执行循环体内的代码。执行完循环体后,程序再次检查 `condition`,如此反复,直到 `condition` 为假(零)。
注意循环体内超过一条语句需要打花括号{}
2. while与if的比较
-
相似之处:while 和 if 都是基于条件判断的。它们都检查一个布尔表达式,以决定是否执行某些代码。
-
不同之处:if?语句只会根据条件执行一次代码块。而 while 循环会不断重复执行代码块,直到条件不再满足。
while循环的执行流程
- 条件检查:首先评估?
condition
。 - 循环体执行:如果
condition
为真,执行循环体内的代码。 - 重复检查:执行完循环体后,再次检查
condition
。 - 循环结束:如果
condition
为假,退出循环。
3.代码示例
1)打印从1到10的数字
先观察这个循环的逻辑,我们找到什么时候结束这个循环,也就是当这个整数大于10 时该循环不再执行,所以我们将条件写为while(i<=10){},让 i 初始化为1 ,每次打印一个值后让i+1。
#include <stdio.h>
int main() {
int i = 1;
while (i <= 10) {
printf("%d\n", i);
i++;//++后置,先使用,后自增
//还可以写成++i或者i = i+1或者i+=1
}
return 0;
}
2)简单计数器:使用while循环创建一个从1数到指定数字(如100)的计数器
这个是之前打印1-10的原理一模一样,可以添加进某些代码里,这个变量i 可以起到一个计数的作用
#include <stdio.h>
int main() {
int i = 1;
while (i <= 100) {
printf("%d\n", i);
i++;
}
return 0;
}
3)100以内偶数打印
#include <stdio.h>
int main() {
int i = 1;
while (i <= 100) {
if (i % 2 == 0) {
printf("%d\n", i);
}
i++;
}
return 0;
}
4)计算从1到100的所有数字的总和
#include <stdio.h>
int main() {
int i = 1;
int sum = 0;
while (i <= 100) {
sum += i;//将每个i累计起来
i++;
}
printf("%d\n", sum);
return 0;
}
4.题目练习
输??个正的整数,逆序打印这个整数的每?位例如:输?:1234,输出:4 3 2 1输?:521,输出:1 2 5
题目分析?
1. 要想得到n的最低位,可以使用n%10的运算,得到的余数就是最低位,如:1234%10得到42. 要想去掉n的最低位,找出倒数第?位,则使用 n=n/10 操作就可以去掉最低位的,如:n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第?位3。3. 循环1和2两个步骤,在n变成0之前,就能到所有的位。
//输??个正的整数,逆序打印这个整数的每?位
#include <stdio.h>
int main()
{
int i = 0;
int a = 0;
scanf("%d", &i);
while (i > 0) {
a = i % 10;
printf("%d ", a);
i=i/10;
}
return 0;
}
?这种比较简洁,可以自己思考怎样理顺逻辑,写出代码
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
while(n)
{
printf("%d ", n%10);
n /= 10;
}
return 0;
}
文章来源:https://blog.csdn.net/m0_52889787/article/details/135306841
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!