整理笔记
C++循环
while循环:当给定的条件为真时,重复语句或语句组。在执行循环主体之前测试条件
while(condition) { statement(s); }
statement(s)可以是一个独立的语句,也可以是由几个语句组成的的代码块,condition可以是任意合法的表达式。条件为真执行循环,条件为假执行while循环的下一条语句
for循环 :执行特定次数的循环的重复控制结构
for( init; condition; increment ) { statement(s); }
注:当条件表示不存在时,它被假设为真,也可以设置一个初始量和增量表达式,一般情况下可以使用for( ; ; )结构来表示一个无限循环。
1.init会先被执行,且指挥执行一次。init允许声明并初始化任何循环控制变量。也可以不写语句只有一个分号。
2.下一步就是判断condition,判断结果为真则执行循环主体,为假就不执行循环主体,且控制流会跳转到紧接着for循环的下一条语句。
3.执行完for循环主体后,控制流会跳回increment语句。increment语句允许更新循环控制变量。该语句也可留空,只写一个分号。
4.条件再次被判断,结果为真,则执行循环,这个过程是持续不断的(循环主体-执行increment语句-再重新判断条件)判断为假时,for循环终止
do...while循环:与while循环类似,但是do...while循环会确保至少执行一次循环。
do { statement(s); }while( condition );
条件表达式在循环的尾部,所以循环中的statement(s)会在条件测试之前至少执行一次。如果条件为真,控制流会跳转到do,然后重新执行循环主体,直到条件判断语句为假跳出循环。
循环嵌套 :C++允许至少256个嵌套层次。
可以在任意类型的循环内嵌其他任何类型的循环。
以下是三种循环的嵌套:
for( init; condition; increment)
{
for( init; condition; increment)
{
statement(s);
}
statement(s);
//可以放置更多语句
}
while(condition)
{
while(condition)
{
statement(s);
}
statement(s);
}
do
{
statement(s);
do
{
statement(s);
}while(condition);
}while(condition);
break语句:
1.当break语句出现在一个循环内,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
2.可用于终止switch语句中的一个case。
3.在循环嵌套中,break语句会停止执行最内层的循环。
do { cout << "a 的值:" << a << endl; a = a + 1; if( a > 15) { break;//终止循环 } }while(a < 20);
continue语句 :
continue语句不是强制终止,是跳过当前循环中代码,强制开始下一次循环。在for循环中,continue语句会跳过循环体执行然后增量部分执行一次,在while和do...while循环中,continue语句会直接回到条件判断语句。
do { if(a == 5) { //直接跳过数值叠加 a = a+1; continue; } cout << "a 的值:" << a << endl; a = a + 1; }while(a < 5);
goto语句:
goto语句允许把无条件 转义到同一函数内被标记的语句
注:在任何编程语言中,goto语句都不建议使用。因为它使得程序的控制流难以跟踪,使程序难以理解和修改。
troop:do
{
if(a == 5)
{
//直接跳过数值叠加
a = a+1;
goto troop;
}
cout << "a 的值:" << a << endl;
a = a + 1;
}while(a < 20);
另外,在这个代码中,使用break语句并没有什么效果,只是退出最内层的循环。goto语句可以避免多于代码执行直接推出深嵌套例程:
for(....){
for(....){
while(....){
if(....) goto stop;
.
.
.
}
}
}
stop :
cout << "Error in program.\n";