c语言第05章循环结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
…...
真(非0)
while
expr
假(0)
while
假(0) expr
真(非0) …… continue; ……
例 求输入的十个整数中正数的个数及其平均值
#include <afx.h> #include <stdio.h> void main() { int i,num=0,a;
float sum=0; printf("Input 10 integer:\n"); for(i=0;i<10;i++) { scanf("%d",&a);
count++; ch=getchar(); } printf("Count = %d\n", count); getch(); }
二、 do-while语句
一般形式:
do { s;
}while(p);
注意:s为一个语句系列;
执行流程:
真(非0)
s
p 假(0)
100
例 用do~while循环求 n n 1
例:从键盘输入的一行字符,统计其中数字字符的个数。
#include <stdio.h> void main() { char ch;
int count=0; printf("Input a string:\n"); ch=getchar(); while(ch!='\n') { if(ch<='9'&&ch>='0')
#include <stdio.h> void main() { int i,sum=0;
i=1; do{
sum+=i; i++; }while(i<=100); printf("sum=%d\n",sum); getch(); }
特点:先执行循环体,后判断表达式 说明:
至少执行一次循环体 do~while可转化成while结构
循环体
假(0) p
真(非0) 循环体
While循环
例 while和do~while比较
start
#include <stdio.h> void main() { int i,sum=0;
scanf("%d",&i); do { sum+=i;
i++; }while(i<=10); printf("%d",sum); }
三、for循环
一般形式:
for( expr1 ; expr2 ; expr3) s1
100
例 用for循环求 n n 1
#include <stdio.h> void main() { int i,sum=0;
for(i=1;i<=100;i++) sum+=i;
printf("sum=%d",sum); }
long sum=1; printf("Input n:\n"); scanf("%d",&n); for(i=1;i<=n;i++) sum*=i; printf("sum=%ld\n", sum); getch(); }
四、 辅助控制语句
1、break语句 • 功能:在循环和switch语句中,终止并跳出循 环体或开关体 • 说明: –只能终止并跳出最近一层的结构 –不能用于循环语句和switch语句之外的 任何其它语句之中
N i<=10 Y sum+=i i++
输出sum值 end
例 编程求 s 1 1 1 1 . .1 .,恰好 1 1 5 ( 直 0 1 1到 5 ) 0
234 i
i i 1
#include <stdio.h> void main( ) { int i = 1;
float s = 0.0, t=1.0; do { s += t; i++; t = 1.0/i; }while( t>1e-5 ); printf("s=%.6f\n", s); }
执行流程:
for expr1
假(0) expr2
真(非0) s1
expr3
说明: 1、expr1, expr2 ,expr3 类型任意 ,都可省略,但分号“;”不可省 2、无限循环: for(;1;), for(;;) 3、for语句可以转换成while结构
expr1; while(expr2) {
while 假(0)
expr 真(非0)
…… break;
……
do
……
break;
…...
真(非0)
while expr
假(0)
for
expr1
假(0) expr2
真(非0)
…… break; …...
p1 语句组1 break;
switch
e=?
case p2
pn default
语句组2 …... 语句组n 语句组
sum=0 输入i值
sum+=i
i++ Y i<=10
N 输出sum值
end
#include <stdio.h> void main() { int i,sum=0;
scanf("%d",&i); while(i<=10) { sum+=i;
i++; } printf("%d",sum); }
start sum=0 输入i值
循环体语句; expr3; }
#include <stdio.h> void main() { int i,sum=0;
i = 1; while(i<=100) { sum+=i;
i++ ; } printf("%d",sum); }
例 编程求n!=1*2*3*4…*n
#include <stdio.h> void main( ) { int i,n;
if(area>100) break;
printf("r=%d,area=%.2f\n",r,area); } }
2、continue语句 功能:结束本次循环,跳过循环体中尚未执行的语句
for
expr1 假(0)
expr2 真(非0)
…… continue;
…...
expr3
do
……
continue;
break;
bFra Baidu bibliotekeak; break;
expr3
例 break举例:从半径为1的圆开始,输出圆面积, 直到面积大于100时停止
#include<stdio.h> #define PI 3.14159 void main() { int r;
float area; for(r=1;r<=10;r++) { area=PI*r*r;
if(a<=0) continue; num++; sum+=a; }
printf(" num =%d\n", num);