一、循环语句do while的用法
![](https://i-blog.csdnimg.cn/blog_migrate/d7c5a779b52c0d0b72e3c2075e67e522.png)
分析代码:
创建变量i
do内放语句项
while(表达式),表达式为真则进入循环
此代码的结果为打印1-10这10个数字
源代码:
#include<stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
二、do while语句中的break
break:跳出循环
![](https://i-blog.csdnimg.cn/blog_migrate/52cd6250b92e9e6ecd8b99f6feaac64c.png)
分析代码:
这段代码与第一段大约一致
在do内的第一条语句为if(i==5),即当i=5时跳出循环
此代码的结果为:1 2 3 4(5来不及打印)
源代码:
int main()
{
int i = 1;
do
{
if (i == 5)
break;
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
三、do while语句中的continue
continue:跳过continue后的语句,重新开始新循环
![](https://i-blog.csdnimg.cn/blog_migrate/49a82e2d71cff1d52a9c4942b2927496.png)
分析代码:
这段代码与第一段大约一致
在do内的第一条语句为if(i==5),然后跳过continue后的语句(打印和++),重新开始循环(i=6)
此代码的结果为:1 2 3 4 6 7 8 9 10(跳过5)
源代码:
int main()
{
int i = 1;
do
{
if (i == 5)
continue;
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
关于循环语句的小练习(一)
1.运用循环语句计算n的阶乘
![](https://i-blog.csdnimg.cn/blog_migrate/bebb5afa5152e507c2bf0e0a5d8fae02.png)
思路:
n的阶乘,及从1乘到n
所以应该想到至少创建两个及两个以上的变量,其中一个用于存储scanf函数取得键盘上的数,另一个变量从1开始循环逐渐逼近目标数
分析代码:
创建变量i,a,以及sum赋值为1
scanf函数将输入的数存入变量i中
for循环,初始化:a=1;判断:a<=i;调整:a++
语句项为sum=sum*a
打印sum
例如i=3:进入for循环,a=1,sum=1;a=2,sum=1*2;a=3(i),sum=1*2*3
源代码:
int main()
{
int i = 0;
int a = 0;
int sum = 1;
scanf("%d", &i);
for (a = 1; a <= i; a++)
{
sum = sum * a;
}
printf("%d", sum);
return 0;
}
2.计算1!+2!+3!+...+10!
![](https://i-blog.csdnimg.cn/blog_migrate/649a5aaf7b1411cd912fa3806b82eab8.png)
思考:
这是在上一个求阶乘的基础上增加了每个阶乘的求和
所以将scanf函数改为for循环即可
分析代码:
创建变量n,a,以及ret赋值1,sum赋值0
for循环:初始化:n=1;判断n<=10;调整n++。这一步是循环出1-10这10个数字
在嵌套for循环:初始化:a=1;判断a<=n;调整a++。这一步是求阶乘的过程
sum+=ret为将每个阶乘求和,最后打印sum
注意:在第二个for循环前要将ret初始化
源代码:
int main()
{
int n = 0;
int a = 0;
int ret = 1;
int sum = 0;
for (n = 1; n <= 10; n++)
{
ret = 1;
for (a = 1; a <= n; a++)
{
ret = ret * a;
}
sum += ret;
}
printf("%d", sum);
return 0;
}
以上的代码可能有些繁琐,简易版如下
![](https://i-blog.csdnimg.cn/blog_migrate/b185f0e94a4338032ea319268313373a.png)
分析代码:
只需要创建3个变量即可
第一个for魂环不变,取消第二个for循环,直接用第二个foe循环的语句即可
但是,ret=ret*n
思路:n=1时,ret为1的阶乘,n=2时,ret为1的阶乘*2,即2的阶乘,以此类推
源代码:
int main()
{
int n = 0;
int ret = 1;
int sum = 0;
for (n = 1; n <= 10; n++)
{
ret *= n;
sum += ret;
}
printf("%d", sum);
return 0;
}
总结
以上就是本人对于循环语句do while以及循环语句的练习(一)的学习与理解