这段时间学习了循环结构。如果按照循环次数是否已知可分为两类。重复次数已知的,称为计数控制的循环;重复次数未知,通过给定条件来控制的,称为条件控制的循环。如果按照循环条件判断和循环体执行先后顺序可分为当型循环和直到型循环。当循环条件成立,执行循环体的,成为当型循环;而先执行循环体,再判断循环条件是否成立,成立则继续执行循环,否则结束该循环的成为直到型循环。接下来是学习的三中基本的循环:
for循环:
for(初始化表达式;循环控制表达式;增值表达式)
{
循环体
}
①先执行初始化表达式
②再判断循环控制表达式,若为真,则执行循环体;若为假,则不再循环,向该循环以下执行。
③执行完循环体后,执行增值表达式,再判断是否符合循环控制表达式,是否继续循环。
注:①for循环前必须有紧挨着循环进行变量的初始化。
②for循环()中的三个表达式中某一个、几个条件可以省略,但是有且仅有两个分号,不能多也不能少。
③for循环变量可以充当一般变量使用,但充当一般变量时,变化规律唯一。
while循环
while(循环控制表达式)
{
循环体(包含循环增值表达式)
}
①在while循环前紧挨着先进行变量初始化。
②再判断循环控制表达式,若为真则执行循环体;若为假则不再循环,向该循环体以下进行。
③执行完循环体后,再判断循环控制表达式,若为真则继续执行循环;若为假则结束该循环。
do-while循环
do{
循环体(包含循环控制表达式)
}while(循环控制表达式)
①在do-while循环前紧挨着循环体进行变量初始化。
②先执行循环体。
③再判断循环控制表达式,若为真则继续循环;若为假则结束该循环。
注:do-while循环体中,循环体至少会执行一次。
我觉得学习了循环语句,可以切实解决一些实际问题了。比如,循环结构通过两个循环嵌套,可以来构建简单的二维图行。也可以解决openjudge中像17题津津的储蓄计划这类简单的储蓄问题。并且,我认为循环语句在解决问题当中有时可以有效解决顺序结构无法解决的问题,并且可以优化算法,提高程序处理的效率。
在做openjudge中试题时最大的感触是一定要有丰富的想象力!如可以用while控制条件做死循环,可以用两个循环的嵌套,做成一个二维平面。三种循环在一定条件下可以相互转化,再有时又要巧妙的利用它们在细节上的不用来解决问题。比如循环次数已知时,可以用for循环解决;而循环次数未知时,可以用while循环解决,亦可以用for循环中增加if、else if判断以及break跳出循环达到解决问题的目的。最后我觉得最大的感受是,不要为了写循环嵌套而去嵌套!而是根据需要,水到渠成。这样的循环语句才是有灵魂的。