您的位置:首页 > 其它

退出循环的n种方法

2012-02-01 17:00 10 查看
退出循环的n种方法,你能想出几种?

1、增加变量,作为退出条件:

bool dobreak = false;
for ( ..; !dobreak && ..; .. ) {
for ( ... ) {
if (...) {
dobreak = true;
break;
}
}
}
2、使用goto:
for (;;)
{
for (;;)
{
break; /* breaks inner loop */
}
for (;;)
{
goto outer; /* breaks outer loop */
}
}
outer:;
3、使用return:
void do_lots_of_work(void)
{
int i, j;

for(i=0; i<10 ; i++)
{
for(j=0;j< 10; j++)
{
..
..
if(disaster_struck())
return; /* Gets us out of the loops, and the function too. */
}
}
}
4、嵌套if语句:
bool isTerminated = false;

for (...)
{
if (!isTerminated)
{
for(...)
{
...

isTerminated = true;
break;
}
}
else
{
break;
}
}
5、使用子函数
for (int i = 0; i < 10; i++) {
if (timeToStop(i)) break;
}

-(bool) timeToStop: (int) i {
for (int j = 0; j < 10; j++) {
if (somethingBadHappens) return true;
}

return false;
}

6、使用try...catch:

@try {
for() {
for() {
@throw ...
}
}
}
@catch{
...
}

7、使用if加额外变量:
for(i=0; i<10 && (done==false); i++)
for(j=0;j< 10; j++){
..
..
if(...){done=true; break;}
}
8、直接修改循环变量:
for(i=0; i<10 ; i++)
for(j=0;j< 10; j++){
..
..
i = 10;
break;
}












                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: