For loop 对于循环计算,在几个循环后给出null

For loop 对于循环计算,在几个循环后给出null,for-loop,null,dart,flutter,For Loop,Null,Dart,Flutter,我想从用户输入生成一个图形,当用户输入数字并按下按钮时,onpressed函数进入for循环以计算所有图形点。然而,现在for循环给出了错误的值,在经过一定数量的循环之后,它开始到处给出空值,不确定是什么导致了这种情况 这是我的onPressed函数: onPressed: () { setState(() { for (int i = 1; i <= 20; i++) { for (i

我想从用户输入生成一个图形,当用户输入数字并按下按钮时,onpressed函数进入for循环以计算所有图形点。然而,现在for循环给出了错误的值,在经过一定数量的循环之后,它开始到处给出空值,不确定是什么导致了这种情况

这是我的onPressed函数:

onPressed: () {
              setState(() {
                  for (int i = 1; i <= 20; i++) {
                    for (int j = 0; j < 6; j++) {
                      value1 = 0.0;
                      print(i.toString() + ' , ' + j.toString());
                      if (j == 0) {
                        value1 = (_finalDrive *
                                (i * 10 * mphtokmph) *
                                _gear1 *
                                _coefficient) /
                            _tireDiameter;
                      } else if (j == 1) {
                        value1 = (_finalDrive *
                                (i * 10 * mphtokmph) *
                                _gear2 *
                                _coefficient) /
                            _tireDiameter;
                      } else if (j == 2) {
                        value1 = (_finalDrive *
                                (i * 10 * mphtokmph) *
                                _gear3 *
                                _coefficient) /
                            _tireDiameter;
                      } else if (j == 3) {
                        value1 = (_finalDrive *
                                (i * 10 * mphtokmph) *
                                _gear4 *
                                _coefficient) /
                            _tireDiameter;
                      } else if (j == 4) {
                        value1 = (_finalDrive *
                                (i * 10 * mphtokmph) *
                                _gear5 *
                                _coefficient) /
                            _tireDiameter;
                      } else if (j == 5) {
                        value1 = (_finalDrive *
                                (i * 10 * mphtokmph) *
                                _gear6 *
                                _coefficient) /
                            _tireDiameter;
                      }
                      values[int.parse(((j) * (i)).toStringAsFixed(0))] =
                          value1;
                    }
                  }
              });
            },
输出结果如下所示: I/颤振21824:[47049.251383.392766.774150.165533.556916.938300.329683.7、11067.0912450.48、13833.86、15217.2516600.64、17984.02、19367.41、20750.8、22134.18、23517.57、24900.96、26284.34、27667.73、4940.67、10504.56、空、11459.52、2075.08、12414.48、6352.28、13369.44、空、14324、1524.34、1699.89、16236、289.89、16236、16234.89、289、289.89、289、289、289、289、289、289、289、289、289、289、289、289、289、,18144.249175.5219099.2,null,9881.33,null,5652.1210587.14,null,null,11292.95,null,4150.1611998.76,6679.78,null,12704.57,4565.187193.61,13410.38,null,null,14116.19,null,null,null,null,null,8221.27,5395.21,4565.18,null,null,8735.1,null,null,5810.22,null,9248.93,null,null,null,null,null,6225.24,9762.76,null,5395.21,null,nul,10276l、 null,5810.22,7055.27,null,null,null,null,7470.29,null,null,null,7885.3,6640.25,null,null,null,null,null,8300.32,null,7055.27,null,null,null,null,null,null,7470.29,null,null,null,null,null,7885.3,null,null,null,null,null,null,null,null,null,null]
数组的索引有问题 代码


所有变量都是双变量,即使不是空的值也有错误,我在excel中使用了相同的方程,第一个值得到了908.3,如果它有帮助的话_finalDrive的值是4.11,mphtokmph是1.609344,_系数是336.13,_tireDiameter是31.5,_gear1是3.333,_gear2是1.96,_gear3是1.353,_gear4是1,_gear5是0.728和_gear6是0.588我不太清楚dart,但是你把结果放在数组中,那么索引i*j中每个元素的值,正常吗?每次j=0,你都写在索引0中。第一个索引是0,最后一个是5*19Oh,我明白你的意思,这是有意义的,但是我应该如何使它在for循环中从元素0变为119,我想我是f我想,我会在内部循环中有一个单独的计数器,每次递增,我会用它作为列表的索引,谢谢你没有回答你的问题,但是当你用后缀数字命名变量时,这是一种代码味道。如果你有gear[j],这段代码会简单得多不需要单独的变量,甚至不需要内部开关,只要var value=\u finalDrive*i*10*mphtokmph*gear[j]*\u coefficient/\u tireDiameter;请看,简单得多。
indice = -1 
For loop1...
  For loop2...
   indice = indice +1 
      :
      :
value[indice] = value1