一、接上篇do while语句
while和do-while循环的比较。
int main()
{
int i,sum=0;
scanf(“%d”,&i);
while(i<=10)
{
sum=sum+i;
i++;
}
printf(“sum=%d\n”,sum);
}
int main()
{
int i,sum=0;
scanf(“%d”,&i);
do
{
sum=sum+i;
i++;
} while(i<=10);
printf(“sum=%d\n”,sum);
}
输出1 sum=55 sum=55
输出2 sum=0 sum=11
for语句
for (表达式1;表达式2;表达式3)
for (循环变量赋初值;循环条件;循环变量增值)
(1)先求解表达式1;
(2)求解表达式2,若其值为真,则 执行循环体语句,然后执行第
(3)步;若为假,则结束循环,转到第(5)步; (3)求解表达式3;
(4)转向步骤(2);
(5)循环结束,执行for语句下面的一个语句。
#include <stdio.h>
int main()
{
int i,sum;
sum=0;
for (i=1;i<=10;i++)
sum=sum+i;
printf(“sum=%5d\n”,sum);
}
sum= 55
案例分析:
输出Fibonacci (斐波那契)数列 1、1、2、3、5、8、13…的前20项, 要求每输出5项后换行。
#include <stdio.h>
int main()
{
int f1,f2,f,i;
f1=f2=1;
printf("%10d%10d",f1,f2); //前2项先输出
for(i=3; i<=20; i++) //迭代从第3项开始
{
f=f1+f2; f1=f2; f2=f;
printf("%10d",f); //一行输出够五个,就换行
if(i%5==0)
printf("\n");
}
}
几种循环语句的比较
1、 三种循环语句在处理循环问题时,一般可以相互替代。
2、 对于循环次数固定的问题,用for语句实现比较简单。
3、 对于循环次数不确定的问题,可用while语句或do-while语句实现。
4、 while语句:先判断,后执行。 do-while语句:先执行,后判断。