- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i++;
putchar(‘*’); i++; { putchar(‘*’);
i++; }
8
资料仅供参考
5.2 do--while语句
1、do--while语句 常称为“直到型” 循环语句。
循环体
非零
表达式 零
9
2、do--while的形资式料仅供参:考
#incdluode <stdio.h>
main() 循环体; { winht iil,esu(表m=达0;式);
(1,1,2,3,5,8, …)
fibonacci数列满足下面递归关系:
F1=1
(n=1)
F2=1
(n=2)
Fn=Fn-1+Fn-2 (n≥3)
分析:
1 1 2 3 5 8 13‥ a+ ba
b+ a b a + b a b + a b ‥‥
a=1,b=1
for i=1 to 10 输出a,b
a=a+b b=b+a
当i=3时,结束本次
循环pr体in的t执f("行\n%d",i
资料仅供参考
break与continue的区别
break语句 continue语句
for( e1;e2;e3) {…
if(e) break; … }
for( e1;e2;e3) {…
if(e) continue;
计算e1
计算e1
0
e2
0 e2
6即为24c)求2个整数的最大公约数
#include <stdio.h> main() { int a,b,t;
scanf(“%d,%d”,&a,&b); while(b<=10)
{ t=a%b; a=b;
运行过程: tab =========
24
}
资料仅供参考
循环终止条件的种类:
1.关系表达式: 如前几例 2.逻辑表达式: for (; a>b && x<y ;) 3.字符表达式:
for (; (c=getchar()) != ‘\n’;) printf(“%c”,c);
25
资料仅供参考
5.4 goto语句
1、 无条件转移语句; 形式:goto 标号; 满足标识符的规定
main () { int i,sum=0;
i=1; while(i<=100) { sum=sum+i;
i++ ; } printf(“%d\n”,sum); }
11
main() { int i,sum=0;
i=1; do { sum=sum+i;
i++; }while(i<=100); printf(“%d\n”,sum); }
循环变量 控制
说明:
– for语句中expr1, expr2 ,expr3 类型任意,都 可省略,但分号;不可省
– 无限循环: for(;;) – for语句可以转换成while结构
14
资料仅供参考
sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
它相当于以下语句:
i=1;
表达式1;
输入abcdefg.输出abcdefg.
while(putchar(getchar( ) )!=’.’ ) ;
19
资料仅供参考
例:#include<stdio.h> main( ) { int i;=0; for(i;=i<01;i0<;1i+0+;i)++) putchar(‘a’+i); }
例运:行#结inc果lu:dea<bstcddioe.fhg>hij
10*10=100
5
资料仅供参考
例 (ch5_03.c)求2个整数的最大公约数
思考:24和42的最大公约数=? 公式:gcd(a,b)=gcd(b,a%b)
则 gcd(42,24) =gcd(24,42%24)=gcd(24,18) =gcd(18,24%18)=gcd(18,6) =gcd( 6, 18%6 )=gcd(6,0)
main( ) { int i=0;
for(;i<10;)putchar(‘a’+i),i++) ; putchar(‘a’+(i++));
}
20
main()
资料仅供参考
{ int i,j,k;
for(i=1,j=100;i<=j;i++,j--)
{ k=i+j;
printf("%d+%d=%d\n",i,j,k);
如: sum=0,i=1;
for(;;)
{ if(i>100) break;
sum=sum+i; i++;
}
18
(6)循环体为空语资料句仅供参考 对for语句,循环体为空语句的一般形式为: for (表达式1;表达式2;表达式3) ;
如:for(sum=0,i=1;i<=100;sum+=i, i++) ; 又如: 要在显示器上复制输入的字符,输入的字符为‘.’ 时, 结束循环。
如: for(sum=0,i=1;;i++)
{ if(i>100) break; sum=sum+i;
16
}
(3)表达式3也可以资料仅供省参考 略,但此时保证循环能 正常结束。
如:for(sum=0,i=1;i<=100;)
{ sum=sum+i;
i++;
}
(4) 可以省略表达式1和表达式3,只有表达 式2。
while (i<=100) while(表达式2)
{ sum=sum+i; { 语句;
i++;
表达式3;
}
}
15
资料仅供参考
3、for语句中表达式的省略
(1)for语句一般形式中的“表达式1”可以 省略;
如: sum=0;i=1;
for ( ; i<=100;i++)
sum=sum+i;
(2)表达式2省略,即不判断循环条件,循 环无终止地进行下去;
3
资料仅供参考
例 (ch5_01.c)求1+2+3+4+5+···+100。
#include <stdio.h>
main()
循环条件
{ int i,sum=0;
循环初值
i=1;
while(i<=100)
循环变量增值
{ sum=sum+i; i++;
循环终值
}
printf("%d",sum);
}
循环体
4
思考:求10!
资料仅供参考
例 (ch5_02.c)显示1~10的平方
#include <stdio.h> main() { int i=1;
while(i<=10) {
printf("%d*%d=%d\n",i,i,i*i);
i++; } }
运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81
main()
{ int i;
{ int i;
for(i=1;i<=5;i++)
for(i=1;i<=5;i++)
{ printf("\n%5d",
i);
1 2
p12rintf("%125d1"2,i);
}3 3
3
44
} 55
44 55
30
{ printf("\n%5d"
,i);
if(i==3) continue;
资料仅供参考
循环结构
循环:就是在给定的条件成立时反复
执行某一程序段,被反复执行的程序
段称为循环体。
在C语言中可以用以下语句来实现循 环:
1、用while语句; 2、用do--while语句; 3、用for语句;
1
资料仅供参考
5.1 while语句
1、while 语句 常称为“当型”循环语句。
表达式 零 非零
解法二:
资料仅供参考
分析: 1 1 2 3 5 8 13‥
a+ bc a+ b c a + b c
a + b c ………… 程序:main()
{ int i,a,b;
a=b=1;
printf("%10d%10d",a,b);
for(i=3;i<=20;i++)
{c=a+b; printf("%10d",c);}
{ printf("\n%5d", { printf("\n%5d",i
i); 1 1
);
prin2 tf(2"%5d",i);
if(i==1 3) 1break;
} }
29
33 44 55
22 3
printf("\n%d",i); 当} i=3时,结束循环