目录
前言
上一篇我学到for循环语句的使用,还有for循环语句的两种变种,补充注意的一点是for循环语句不可以随便省略初始化部分。
这种没有省略任何一部分的情况输出的结果是100个ok,但省略j=0就会改变运行结果,输出10个ok。
一、do while()循环语句
do
循环语句;
while(表达式);
1.do while()循环语句示例
1.1.含有break语句
1.2.含有continue语句
由此可以看出,do while()循环语句和while循环语句用法基本一样。
二、练习应用
1.计算n的阶乘
for循环语句
#include <stdio.h>
int main()
{
int i, n;
int ret = 1;
scanf("%d", &n);//注意n的值不能太大
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
printf("%d", ret);
return 0;
}
while循环语句
#include <stdio.h>
int main()
{
int i = 1, n;
int s = 1;
scanf("%d", &n);
while (i <= n)
{
s = i * s;
i++;
}
printf("%d", s);
return 0;
}
2.计算1!+2!+···+10!的值
#include <stdio.h>
int main()
{
int i, n, ret;
int sum = 0;
for (n = 1; n <= 10; n++)
{
ret = 1;//
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
sum = sum + ret;
}
//ret1=1*1 sum1=sum+ret1=1
//ret2=ret1*2=2 sum2=sum1+ret2=3
//ret3=ret2*3=6 sum3=sum2+ret3=9
printf("%d", sum);
return 0;
}
下面这种方法就是直接用一个数的阶乘加上后面数的阶乘
#include <stdio.h>
int main()
{
int n, ret = 1;
int sum = 0;
for (n = 1; n <= 10; n++)
{
ret = ret * n;//n的阶乘
sum = sum + ret;
}
//ret1=ret*1=1 sum1=sum+ret1=1
//ret2=ret1*2=2 sum2=sum1+ret2=3
//ret3=ret2*3=6 sum3=sum2+ret3=9
printf("%d", sum);
return 0;
}
总结
do while循环语句和while循环语句用法差不多,两道练习题中第一道练习题的while循环语句的写法是我自己先做出来的,for循环语句的是老师讲的,第二题的话,只考虑用for循环语句会更简单,在循环的时候,要把那个过程搞清楚,嵌套的过程就是也要知道,自己最好要把过程写一遍,因为我发现我自己的脑子好像转不过来。