1: while:
主要作用:一直循环执行,直到while()中的值为假,或者从循环内部break退出。
while(1)构造死循环,如windows中的消息循环。
(2)在其中直接套入break,提前结束循环。
(3)在其中可以使用continue.,结束本次循环,进入下次循环。
#include <stdio.h>
main()
{
int i=0;
while(1)
{
i++;
if(i==3)
continue;
if(i==7)
break;
printf("%d/n",i);
}
}
2:do...while :
作用:进行一次循环退出,解决代码冗余,避免goto跳转。
修改前:
bool
Execute()
{
// 分配资源
int
*p
=
new int;
bool
bOk(true);
//
执行并进行错误处理
bOk =
func1();
if(!bOk)
{
delete p;
p
=
NULL;
return false;
}
bOk = func2();
if(!bOk)
{
delete p;
p
=
NULL;
return false;
}
bOk = func3();
if(!bOk)
{
delete p;
p
=
NULL;
return false;
}
// ..........
//
执行成功,释放资源并返回
delete p;
p =
NULL;
return true;
}
goto法:
bool
Execute()
{
// 分配资源
int
*p
=
new int;
bool
bOk(true);
//
执行并进行错误处理
bOk =
func1();
if(!bOk) goto
errorhandle;
bOk = func2();
if(!bOk) goto
errorhandle;
bOk = func3();
if(!bOk) goto
errorhandle;
// ..........
//
执行成功,释放资源并返回
delete p;
p =
NULL;
return true;
errorhandle:
delete p;
p
=
NULL;
return false;
}
修改后:
bool
Execute()
{
// 分配资源
int
*p
=
new int;
bool
bOk(true);
do
{
// 执行并进行错误处理
bOk = func1();
if(!bOk) break;
bOk =
func2();
if(!bOk) break;
bOk =
func3();
if(!bOk) break;
//
..........
}while(0);
//
释放资源
delete p;
p =
NULL;
return bOk;
}
2:break ,continue同样可以使用
#include <stdio.h>
main()
{
int
i=0;
do
{
i++;
if(i==3)
continue;
if(i==7)
break;
printf("%d/n",i);
}
while(1);
}
3:for循环
1:用来表示循环次数已知的情况
2:死循环
for(;;)由于空表达式null在语法上是有效的,所以我们可以把for语句的三个表达式留空,这样就会产生不断执行for嵌套语句的效果。
3:(;i<10;i++)对i复杂的初始化放在循环外,提高了效率
4:使用多重循环来控制多个变量
for(i=0;j=10;i<=10;i++,j--)
5:如果把for语句的三个表达式写得复杂一些,则可以用于优化算法
计算1-5的阶乘结果,斌值到j
for(i=1, j=1; i<=5;j*=i++)
cout<<j ;
6:break continue也都可以使用。