Как остановиться / разбить на каждую л oop в дротик / флаттер? - PullRequest
0 голосов
/ 04 марта 2020

Я хочу отключить forEach l oop после выполнения for l oop.

  void main() {
      var id = [1, 2, 3, 4, 5];


      id.asMap().forEach((index, number) {
        print('ForEach loop');

        for (int i = 0; i < 1; i++) {
          print("for loop");
        }
      });
    }

Ответы [ 4 ]

0 голосов
/ 04 марта 2020

Вместо взлома установите логическое значение, чтобы отслеживать, когда запускать тело foreach, а когда нет

void main() {
      var id = [1, 2, 3, 4, 5];
      bool forEachDone=false;

      id.asMap().forEach((index, number) {
        //forEachDone=false;
        print('ForEach loop');
       if(!forEachDone){
        for (int i = 0; i < 1; i++,forEachDone=true) {
          print("for loop");
        }

       }
      });
    }
0 голосов
/ 04 марта 2020

я не думаю, вы можете остановить foreach

использовать for:

var id = [1, 2, 3, 4, 5];

  for (int i in id) {
    if(i == 2)
      break;

    print('$i');
  }
0 голосов
/ 04 марта 2020

Не может сломаться forEach с Дартс.

Вы можете использовать for и indexOf

  for (var number in id) {
    var index = id.indexOf(number);

    print('Origin forEach loop');

    for (int i = 0; i < 1; i++) {
      print("for loop");
    }

    break;
  }
0 голосов
/ 04 марта 2020

Я думал, что это будет полезно для вас. используя метку, чтобы разорвать петли.

 void main() { 
 outerloop: // This is the label name 

   for (var i = 0; i < 5; i++) { 
   print("Innerloop: ${i}"); 
   innerloop: 

  for (var j = 0; j < 5; j++) { 
     if (j > 3 ) break ; 

     // Quit the innermost loop 
     if (i == 2) break innerloop; 

     // Do the same thing 
     if (i == 4) break outerloop; 

     // Quit the outer loop 
     print("Innerloop: ${j}"); 
   } 
 } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...