ループを終了するn種類の方法
13826 ワード
ループを抜けるnつの方法は、いくつか考えられますか?
1、変数を追加し、終了条件とする:
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; }