二重ループを抜ける方法。

条件が当てはまったとき、二重ループを抜ける処理を書くのに悩んでしまった。

for(継続条件1){
  for(継続条件2){
    if(条件){
      printf("true");
      break;
    }else{
      printf("false");
    }
  }
}


と書くと、内側のループは抜けるが、外側のループは抜けないので止まらない。
内側のループでbreakを呼んだ後、すぐさま外側のループを抜けるには・・・?
一般的にはフラグを使うのが正しいんだろうけど、私が考えた方法は、

for(継続条件1){
  for(継続条件2){
    if(条件){
      printf("true");
      継続条件1を溢れさせる;
      break;
    }else{
      printf("false");
    }
  }
}


これだと次の外側のループは回らないので、結果的に二重ループを抜けたことになる。
でも、さすがにこれには一同からひんしゅくを買ったw
力技にもほどがあるwww
ちなみにWikipeたんによると、

label: //外側のwhile文にラベルをつける
  for (継続条件1) {
    for (継続条件2) {
      if (条件) break label;
    }
  }


とすると、外側のループを抜けるらしい。break文にこんな書き方があったとは。
可読性が云々という話になると、どうかと思うけど。