循环的执行过程、适用情况和常见错误
循环有3种循环——while循环、for循环、do...while循环。下面分别介绍各个循环的执行过程和适用情况。
1、while循环
(1)适合情况:适合不需要一个新的变量来控制循环是否停止。
(2)执行过程:先判断while后面紧跟的括号内的条件是否为真(一般为非0值),为真时执行循环体,一直到条件为假时不执行循环体,直接跳到while循环体后面的代码。
(3)常见错误:循环体不改变条件变量的值或循环体无break语句或return语句(continue语句不能跳出循环)时称为死循环,永远也不会终止循环。while语句的()后面加分号(;)时,称为空语句,这时循环体只执行一次。
2、for循环
(1)适合情况:适用于次数可知的循环,需要一个新的变量来控制循环体的执行次数。
(2)执行过程:for语句的形式为for(语句一;语句二;语句三){ 循环体 }。首先会执行语句一,一般为对新变量(即控制循环体执行次数的变量)进行赋值。然后执行语句二的条件判断,为真时执行循环体,为假时终止循环体的执行。为真的情况下执行一次循环体,然后执行语句三(一般为新变量(即控制循环体执行次数的变量))的改变,缺少语句三或循环体没有该有的语句三时会成为死循环。接下来回到语句二的判断继续刚才的执行过程。
(3)常见错误:for语句的()后面加分号(;),同while语句的常见错误一样。for循环中语句二的判断往往会迷茫,不知道怎样填写,才能循环相应的次数。这需要你们根据情况而定,可以自己写一下控制变量到语句二为假时的次数。注意语句二是不能省略的,否则会报错。更不要把语句二写成任何控制变量都成立的情况,否则成为死循环。
3、do...while循环
(1)适合情况:适用于先执行一次循环体,再进行判断的情况。
(2)执行过程:先执行一次循环体,再判断条件。条件为真时,再执行一次循环体......知道条件为假。
(3)常见错误:本应该不先执行一次循环体,而强硬使用do...while循环。do...while()语句的括号()后面的分号(;)不能省略,这要与while语句的括号区分开来。
break语句是跳出最近的循环语句、循环语句、循环语句,不是选择语句(switch语句除外,尤其是if、else、else if语句)。continue语句是不执行continue语句后面的代码,至最近循环语句的结尾(“}”)前。for中的continue语句是跳到语句三,下来执行语句二的判断......while语句很少见,如果while语句中continue语句前没有能够改变条件真假的语句则会构成死循环。
常把输出函数(printf)放到循环语句中,这时会输出多个结果,除非遇到break语句,终止循环。