C语言一日一学第6课——循环控制(1)

上传人:woxinch****an2018 文档编号:38634414 上传时间:2018-05-05 格式:DOC 页数:7 大小:53KB
返回 下载 相关 举报
C语言一日一学第6课——循环控制(1)_第1页
第1页 / 共7页
C语言一日一学第6课——循环控制(1)_第2页
第2页 / 共7页
C语言一日一学第6课——循环控制(1)_第3页
第3页 / 共7页
C语言一日一学第6课——循环控制(1)_第4页
第4页 / 共7页
C语言一日一学第6课——循环控制(1)_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《C语言一日一学第6课——循环控制(1)》由会员分享,可在线阅读,更多相关《C语言一日一学第6课——循环控制(1)(7页珍藏版)》请在金锄头文库上搜索。

1、1.11.1 概述概述 5 s. G; t 合法; goto 123; 不合法. ! p0 U5 l4 P2 _4 j4 g结构化程序设计方法主张限制使用 goto 语句,因为滥用 goto 语句将使程序流程无规律、可读性差.一般来说,可以有两种用途: (1) 与 if 语句一起构成循环结构; (2) 从循环体中跳转到循环体外。 但是这种用法不符合结构化原则,一般不宜采用,只有在不得已时(例如能大大提高效率)才使用. 4 e5 m, X6 g- U/ y例 1.1 用 if 语句和 goto 语句构成循环,求 1 到 100 的和 1.void main( ) 2. 3. int i, sum

2、=0; 4. i=1; 5. loop: 6. if(i 2.void main() 3. 4. int i,sum=0; 5. i=1; 6. while (i 2.void main() 3. 4. int i,sum=0; 5. i=1; 6. do 7. 8. sum=sum+i; 9. i+; 10. 11. while(i (2) #include 3.void main ( ) void main( ) 4. 5. int sum=0,i; int sum=0,i; 6. scanf(“%d, scanf(”%d, 7. while (i=10) do 8. 9. sum=sum

3、+I; sum=sum+i; 10. i+; i+; 11. while (i=10); 12. printf(“sum=%dn,sum); printf(“sum=%dn”,sum); 13. 14. 15. 复制代码运行结果: 1 sum=55 再运行一次: 11 sum=0 ) - a1 % O) u( “ X; - l4 sum=55 “ l( y v c) A* u再运行一次: % R7 6 r) x0 W; o, X% G# p11 : k9 K6 E% C6 h0 L6 Z5 W) t! T$ lsum=11 说明:(1)当 while 后面的表达式的第一次的值为“真”时,两种循

4、环得到的结果相同。否则,二者结果不相同。 1.51.5 用用 forfor 语句实现循环语句实现循环 “ Q L% S% r S+ FC 语言中的 for 语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替 while 语句。 一般形式: for(表达式 1;表达式 2;表达式 3) 语句 for 语句的执行过程: (1) 先求解表达式 1。 (2) 求解表达式 2,若其值为真(值为非 0),则执 行 for 语句中指定的内嵌语句,然后执行下 面第(3)步。若为假(值为 0),则结束循环,转到第(5)步。 ( - 2 C

5、J4 j A“ i/ F8 ) C, t(5) 循环结束,执行 for 语句下面的一个语句 4 i4 j ! X8 |6 L, e$ r7 y9 for 语句等价于下列语句: 1.表达式 1; 2.while (表达式 2) 3. 4. 语句; 5. 表达式 3; 6.复制代码for 语句最简单的应用形式也就是最易理解的如下形式: i=100;i+) sum=sum+i; % N) W+ v) D5 7 J 它相当于以下语句: : h; i0 i$ U7 Z- xi=1; while(i=100) sum=sum+i;i+; : f! q q“ G, 1 S3 H0 n 显然,用 for 语句

6、简单、方便。 说明: (1)for 语句的一般形式中的“表达式 1”可以省略,此时应在 for 语句之前给循环变量赋 初值。注意省略表达式 1 时,其后的分号不能省略。如 for(;i=100;i+) sum=sum+i; # _ * q9 4 G- L 执行时,跳过“求解表达式 1”这一步,其他不变。 (2) 如果表达式 2 省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式 2 始终为真。 例如:for(i=1; ;i+) sum=sum+i; 表达式 1 是一个赋值表达式,表达式 2 空缺。它相当 于: i=1; while(1) sum=sum+1;i+; (3) 表达式

7、3 也可以省略,但此时程序设计者应另外设法保证循环能正常结束。如: for(i=1;i=100;) 3 A x7 i+; + z / s O8 i在上面的 for 语句中只有表达式 1 和表达式 2,而没有表达式 3。i+的操作不放在 for 语句的表达式 3 的位置处,而作为循环体的一部分,效果是一样的,都能使循环正常结束。(4) 可以省略表达式 1 和表达式 3,只有表达式 2,即只给循环条件。如: 1 E1 Y T1 F“ O$ bfor(;i=100;) while(i=100) 0 n“ c 相当于 sum=sum+i; i+; i+; : U ;) 语句 相当于 while(1)

8、语句 , f; a+ G/ u: J即不设初值,不判断条件(认为表达式 2 为真值), 循环变量不增值。无终止地执行循 环体。 (6)表达式 1 可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达 式。如: for (sum=0;i=100;i+) 表达式 3 也可以是与循环控制无关的任意表达式。 表达式 1 和表达式 3 可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上 的简单表达式,中间用 逗号间隔。如: “ b- D1 d! h9 X“ p) Hfor(sum=0,i=1;i=100;i+) sum=sum+i; 1 K6 X; |. X S9 C4 g“ U

9、7 Q 或 . ( d2 d* v/ F“ nfor(i=0,j=100;i=j;i+,j-) k=i+j; 表达式 1 和表达式 3 都是逗号表达式,各包含两个赋值表达式,即同时设两个初值,使 两个变量增值. 在逗号表达式内按自左至右顺序求解,整个逗号表达式的值为其中最右边 的表达式的值。如: 3 ! T m“ v9 j8 “ q“ for(i=1;i=100;i+,i+) sum=sum+i; “ U; : G+ Y- B. G) z 相当于 7 / “ P6 w + g% V3 3 ; Xfor(i=1;i=100;i=i+2) sum=sum+i; , U9 t* n L3 h4 m2

10、 Z (7) 表达式一般是关系表达式(如 i=100)或逻辑表达式(如 ab (c=getchar()!=n;i+=c); : T9 O, y# - C在表达式 2 中先从终端接收一个字符赋给 c,然后判断此赋值表达式的值是否不等于 n(换行符),如果 i: 5 (c=getchar()!=n;) . v# m v: / ?1 rprintf(%c,c); : j# p+ g$ g7 d% J6 I$ z _. P# Pfor 语句中只有表达式 2,而无表达式 1 和表达式 3。其作用是每读入一个字符后立即 输出该字符,直到输入一个“换行”为止。请注意,从终端键盘向计算机输入时,是在按 Ent

11、er 键以后才将一批数据一起送到内存缓冲区中去的。 % E! G, y) M& Z& k 运行情况: . d) r8 I0 C7 J/ _ Computer (输入) Computer (输出) 7 S+ C u9 a/ Y4 y. t! p) v 而不是 y“ d2 q0 - a9 a N( yCcoommppuutteerr / l5 J |- x2 e/ j$ | P 注意: C 语言中的 for 语句比其他语言(如 BASIC,PASCAL)中的 FOR 语句功能强得多。可以 把循环体 : # d2 J1 q* v# U# q( j0 s) O& C 和一些与循环控制无关的操作也作为表达式 1 或表达式 3 出现,这样程序可以短小简洁。 但过分地利用这一特点会使 for 语句显得杂乱,可读性降低,最好不要把与循环控制无关 的内容放到 for 语句中。 作业: ) K, Q“ L& W) u& , a 1.输入两个正整数 m 和 n,求其最大公约数和最小公倍数. 2.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号