for循环与while循环/do...while循环

来源:互联网 发布:主流网管软件都有啥 编辑:程序博客网 时间:2024/05/18 21:06

一、for循环
for(表达式1;表达式2;表达式3)
{
语句块1;
}
表达式1:初始化,第一次进入循环时,最早被执行,有且执行一次;
表达式2:判断条件,进入循环里面时需要判断,每次进入都需要判断;
表达式3:步进,执行完语句块1之后再执行,每次都执行。

表达式1可以省略,提出去放到for循环前;
表达式2可以省略,放到for循环语句块中用if语句表达。
表达式3可以省略,可以发个到for循环的语句块中;
但是分号不可以省略。

#include <stdio.h>int main(){int i;for(i=0,printf("表达式1:%d\n",i);printf("表达式2:%d\n",i)i<3;i++,printf("表达式3:%d\n",i)){printf("语句块1:%d\n",1);}}打印结果:表达式1:0表达式2:0语句块1:1表达式3:1表达式2:1语句块1:1表达式3:2表达式2:2语句块1:1表达式3:3表达式2:3总结:由此可以看出for循环的执行过程。执行完语句块1之后再执行,每次都执行。

练习:

#include <stdio.h>//1+2+3+4+5+6+...+nint Sum(int n){int tmp=0;for(int i=1;i<=n;i++){tmp+=i;}return tmp;}//求n的阶乘int Fac(int n){int tmp=1;for(int i=1;i<=n;i++){tmp*=i;}return tmp;}int main(){    printf("%d\n",Sum(5));    printf("%d\n",Fac(5));    return 0;}打印结果:15         120

二、while循环

while(表达式)
{
语句块1
}
表达式:进行判断,如果表达式为真,执行语句块1,如果表达式为假,循环结束。

将上面两个例子改为while循环:

#include <stdio.h>//while循环的求和1+2+3+4+...+nint while_Sum(int n){int i=1;int tmp=0;while(i<=n){tmp+=i;i++;}return tmp;}//while循环求n的阶乘int while_Fac(int n){int i=1;int tmp=1;while(i<=n){tmp*=i;i++;}return tmp;}int main(){    printf("%d\n",while_Sum(5));    printf("%d\n",while_Fac(5));    return 0;}打印结果:15         120

三、do…while循环

do
{
语句块;
}while(表达式)

特点:先执行后判断.
若表达式为假,则语句块也会执行一次;若表达式只要有一次是真,情况与while循环就完全相同。

int dowhile_Sum(int n){int i=1;int tmp=0;do{tmp+=i;i++;}while(i<=n);return tmp;}
原创粉丝点击