每個循環(for循環或者while循環)都有一個共同的特點:
擁有循環初始化語句、循環執行的條件、使循環趨于結束的條件(稱為調整語句)、循環體,下面結合實際的循環簡要分析下:
for循環
for(exp1;exp2;exp3)
{
statement;
}
其中的statement稱為循環體;exp1是循環初始化語句;exp2為循環執行要滿足的條件;exp3為使循環趨于結束的條件,它的作用就是調整exp2的值,使循環一步步趨于邊界(無限循環除外)。
for循環語句的執行流程為:
exp1; exp2; {statement;exp3;exp2;} {statement;exp3;exp2;} {statement;exp3;exp2} {...}
由此流程可知,exp1,exp2最先執行且exp1隻執行一次。以後每次的循環都是先執行循環體statement,然後執行exp3,最後執行exp2判斷是否繼續滿足循環執行的條件,滿足條件則進行下一輪的循環,直到exp2的條件不再滿足循環繼續執行下去的條件。
while循環
while語句:
while(exp)
{
statement;
}
該循環語句有兩層含義:
其一:exp為循環執行條件;statement為循環體,調整語句(循環趨于結束的條件)包含在循環體内。示例如下:
int i = 0;//初始化語句
while(i < 10)/*循環執行條件*/
{
statement;//循環體主體部分
i++;//調整語句-使循環趨于結束
}
其二:exp2為循環執行條件與調整語句,statement為循環體。示例如下:
int i = 0;//初始化語句
while(i++ < 10)/*循環執行條件;調整語句-循環趨于結束條件*/
{
statement;//循環體
}
do-while語句
do{
statement;
}while(exp)
statement為循環體,調整語句也包含在循環體中;exp為循環執行條件。示例如下:
int i = 0;//初始化語句
do{
statement;//循環體主體
i++;//調整語句-使循環趨于結束
}while(i < 10)/*循環執行條件*/
while 與 do-while兩者異同
兩者的相同點是:當兩者都滿足循環的初始條件值時則後來的執行流程完全一緻。
兩者唯一的差別是:當初始條件不滿足循環時的處理機制不同:
while循環中當exp初始值不滿足循環執行條件則不進入循環體。
do-while循環中,當exp初始值不滿足循環執行條件時至少會執行一次循環。
for與while兩者差異
兩者的相同點:
兩者都用于循環處理,基本流程相同,都包含初始化語句、循環體、循環執行條件、調整語句;兩者對break語句的處理機制也相同,直接退出循環不進行其他操作。