第六章 循环控制结构--学习总结

第六章 循环控制结构–学习总结
6.1循环结构有当型循环和直到型循环两种类型,while语句和for语句都属于当型循环,do-while语句属于直到型循环。
1、while语句的一般性形式:while(循环控制表达式){语句序列} 如果while后面被加上分号,可能会产生死循环;
2、do-while语句的一般形式:do{语句序列}while(循环控制表达式);循环体内的语句至少被执行一次;
3、for语句的一般形式:for(初始表达式;循环控制表达式;增值表达式){循环语句} 除非有特殊情况,一般不在for语句后面加分号,因为for后面加分号会导致循环什么也不做,只起延时作用,for语句中三个表达式间的分隔符是分号,且只有两个,三个表达式都可以省略。
for语句与下面while的语句形式等价:初始化表达式;while(循环控制表达式){语句序列 增值表达式;}
选择三种循环的一般原则(而非固定原则):
①如果循环次数已知,计算控制的循环一般用for。
②如果循环次数未知,计算控制的循环一般用while。
③如果循环体至少被执行一次,则用do-while。
循环控制结构主要应用于连续进行多次算术运算。
6.2计数控制的循环,本节中应注意累加变量一般初始化为0,而累乘变量不能初始化为0,一般是初始化为1。
此知识点主要是应用于累加求和和累乘求积问题。
6.3将一个循环语句放在另一个循环语句的循环体中构成的循环成为嵌套循环。
while、do-while和for这三种循环均可以相互嵌套,执行嵌套循环时,先有外层循环进入内层循环,并在内层循环终止后接着执行外层循环,再有外层进入内层,当外层循环全部终止时,循环结束。
6.4循环次数事先未知的循环通常是由一个条件控制的,称为条件控制的循环。
⑴随机函数rand()产生的是一个在0∽RAND_MAX之间的整数,符号常量RAND_MAX是在头文件stdlib.h中定义的,因此使用该函数时需要包含头文件stdlib.h。(标准C语言规定RAND_MAX的值不大于双字节整数的最大值32767)
⑵rand()生成的是一个在0-32767之间的整数,如果改变计算机生成的随机数的取值范围,可采用下面的方法来控制:
①利用求余运算rand()%b将函数rand()生成的随机数变化到[0,b-1]之间。
利用rand()b+a将随机数的取值范围平移到[a,a+b-1]之间。
⑶产生随机数的随机化可通过调用标准库函数srand()为函数rand()设置随机数种子来实现。
6.5流程的转移控制
1、goto语句为无条件转向语句,可以向下跳转,也可以往回跳转。其作用是在不需要任何条件的情况下直接使程序跳转到该语句标号所标识的语句去执行,goto语句通常和if联合使用。
2、break语句除用于退出switch结构外,还可用于循环语句的循环体中。当执行循环体遇到break语句时,循环将立即终止,从循环语句后的第一条语句开始继续执行。
3、continue语句与break语句都可用于对循环进行内部控制,但二者对流程的控制效果是不同的。当循环体遇到continue语句时,程序将跳过continue语句后尚未执行的语句,开始下一次循环,即只结束本次循环的执行,并不终止整个循环的执行。
注意:
在嵌套循环的情况下,break语句和continue语句只对包含它们的最内层的循环语句起作用,不能用break语句跳出多重循环。
本章的前半章的学习较容易,而后半章的学习越来越难,在刚开始做openjudge上的题时发现自己并没有完全理解并掌握本章的内容,后来又看了几遍课本才开始做练习。在学习本章时越来越感到基础知识的理解的重要性。除此之外也懂得了在看到一道题时不要去急着写代码,要先想好整体思路,之后再去一步一步去写程序。还有就是学习要有耐心,在做练习时自己有几次是已经修改了多次,但是结果仍然不正确,后来经过与同学交流,并改正错误,最后通过了检验。

猜你喜欢

转载自blog.csdn.net/qq_43627355/article/details/84932201