ループを終了するn種類の方法

13826 ワード

ループを抜ける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;   }