Неправильный вывод с помощью цикла for

#list #dart

#Список #dart

Вопрос:

Я использую переменную j, которая увеличивается каждый раз, когда выполняется цикл for, для подсчета количества выполненных циклов и добавления значения i в список a, а затем добавления списка a в b, но при печати b выводится неправильный вывод.

Мой Код:-

 void main() {
  var a=[];
  var b=[];
  int j=0;
  for (int i = 0; i < 5; i  ) {
    j  ;
    a.add(i);
    if(j>=4)
    {
      b.addAll(a);
      print(b);
    }
  }
}
 

По логике вещей, он должен печатать [0,1,2,3,4], но он печатает:-

[0, 1, 2, 3]

[0, 1, 2, 3, 0, 1, 2, 3, 4]

Комментарии:

1. Это очень серьезный алгоритм. Я еще не добрался до таких сложных алгоритмов. Это почти как нейронная сеть.

Ответ №1:

Причина , по которой он печатает его дважды и во второй раз с дублированием одного и того же списка , кроется в вашей логике j>=4 . Он получает удар дважды. Если вы хотите, чтобы он получил его только один раз, вам нужно будет удалить =

 void main() {
  var a=[];
  var b=[];
  int j=0;
  for (int i = 0; i < 5; i  ) {
    j  ;
    a.add(i);
    if(j>4)
    {
      b.addAll(a);
      print(b);
    }
  }
}

 

это происходит потому , что вы ссылаетесь j вместо i . j достигнет 5, поэтому ваша логика j>=4 применима к 4 и 5, тогда i как не достигнет, потому что она достигнет только 4.