每个循环(for循环或者while循环)都有一个共同的特点:
拥有循环初始化语句、循环执行的条件、使循环趋于结束的条件(称为调整语句)、循环体,下面结合实际的循环简要分析下:
for循环
for(exp1;exp2;exp3)
{
statement;
}
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语句的处理机制也相同,直接退出循环不进行其他操作。
两者的主要差别就是对循环中continue语句的处理机制不同:
for循环中,当遇到continue语句时,会执行调整语句。
while循环中,当遇到continue语句时,不会执行调整语句。