How to break out of nested loops?

前端 未结 15 2621
北荒
北荒 2020-11-27 11:21

If I use a break statement, it will only break inner loop and I need to use some flag to break the outer loop. But if there are many nested loops, the code will

15条回答
  •  醉梦人生
    2020-11-27 12:10

    You'll need a boolean variable, if you want it readable:

    bool broke = false;
    for(int i = 0; i < 1000; i++) {
      for(int j = 0; j < 1000; i++) {
        if (condition) {
          broke = true;
          break;
        }
      }
      if (broke)
        break;
    }
    

    If you want it less readable you can join the boolean evaluation:

    bool broke = false;
    for(int i = 0; i < 1000 && !broke; i++) {
      for(int j = 0; j < 1000; i++) {
        if (condition) {
          broke = true;
          break;
        }
      }
    }
    

    As an ultimate way you can invalidate the initial loop:

    for(int i = 0; i < size; i++) {
      for(int j = 0; j < 1000; i++) {
        if (condition) {
          i = size;
          break;
        }
      }
    }
    

提交回复
热议问题