- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1 循环结构的程序设计 ;;【例5-1】 用while语句求1~100的累计和。 ;【例6-1p】显示1~10的平方; (1) 如果while后的表达式的值一开始就为假,循环体将一次也不执行。
(2) 循环体中的语句可为任意类型的C语句。
(3) 遇到下列情况,退出while循环:
表达式为假(为0)。
循环体内遇到break、return或goto语句(break和goto语句将在随后介绍)。; (4) 在执行while语句之前,循环控制变量必须初始化,否则执行的结果将是不可预知的。
(5) 要在while语句的某处(表达式或循环体内)改变循环控制变量,否则极易构成死循环。
(6) 允许while语句的循环体又是while语句,从而形成双重循环。
;main(){
int a=1,n;
printf(\n input n: );
scanf(%d,n);
while (n--)
printf(%d ,a++*2);
}
;2. do_while语句 ;【例5.2】 用do_while语句求1~100的累计和。 ; 空复合词句作为循环体
do{}while(…);
空语句作为循环体
do;while(…);
死循环 do … while(1) ;
; do_while语句注意事项:;例5.3 while和do~while比较;3. for语句 ;【例5-4】 用for语句求1~100的累计和。 ; for语句注意事项:;#include stdio.h
void main ( )
{
int i, sum = 0;
i = 1;
for ( ; i = 100; i++)
sum += i;
printf(sum = %d\n, sum);
};main()
{ int i,j,k;
for(i=0,j=10;i=j;i++,j--)
{ k=i+j;
printf(%d+%d=%d\n,i,j,k);
}
}; for语句注意事项:;(7)无限循环: for(;;)相当于:while(1)语句
(8) for语句可以转换成while结构;例1:(用for循环实现)
计算 s=1+2+3+…+n (n≥1)
例2:说明以下循环语句的循环次数。
for (i=0; in-1;i++); 答:
(2) for( i=n; i=0; i--); 答:
(3) i=1; while (in) ++i; 答:
(4) i=4; do i--; while(i0); 答:
(5) m=5;while(m5) m+=2; 答:
(6) for(i=1,j=2;ij;i++,j--); 答:;x=3;
do { x--;printf(“%d,”,x); }
while(x=0);
答:
(2) s=0;for(i=0,j=100;i=j;i++,j--) s+=i+j;
printf(“%d”,s);
答:
;例1:计算s=1+2+3+…+n (n≥1)
#include “stdio.h”
main()
{ int s,k,n;
printf(“Input n=“);scanf(“%d”,n);
s=0;k=1; /*L1*/
while(k=n) {s+=k; k++; } /*L2*/
printf(“s=%d\n”,s);
}
程序中,/*L2*/行可以简化为
while(k=n) s+=k++; 则可省去复合词句。;问题与思考:
/*L1*/行中,若令k的初值为0,请填空:
s=0;k=0;
while( ) s+=k++;
答:
(2) 将/*L2*/行进行如下改动,请填空:
s=0;k= ;
while( ) { k++; s+=k; }
答:;5. break与continue语句 ;5.7.1 用break语句提前终止循环;5.7.1 用break语句提前终止循环;5.7.1 用break语句提前终止循环;#include stdio.h
#define SUM 100000
int main()
{ float amount,aver,total; int i;
f
文档评论(0)