For loop 循环省道中的列表值未更改

For loop 循环省道中的列表值未更改,for-loop,flutter,dart,indexing,For Loop,Flutter,Dart,Indexing,我有一个布尔值列表,我想更改相应索引的值,但值并没有更改代码似乎是正确的 List<bool> toggleTemp = [false, false, false, false, false, false, false]; for (int k = 0; k < toggleTemp.length; k++) { print(k.toString() + " " + i.toString() + " " + toggleTemp[k]

我有一个布尔值列表,我想更改相应索引的值,但值并没有更改代码似乎是正确的

      List<bool> toggleTemp = [false, false, false, false, false, false, false];

      for (int k = 0; k < toggleTemp.length; k++) {
        print(k.toString() + " " + i.toString() + " " +  toggleTemp[k].toString());

        if (toggleTemp[k] == i) {
          toggleTemp[k] = true;
        } else {
          toggleTemp[k] = false;
        }

      }
      print(toggleTemp.toString());


根据打印语句,变量i的值声明为int,即1,它永远不等于boolean的toggleTemp[k]的值。

根据打印语句,变量i的值声明为int,即1,它永远不等于toggleTemp[k]的值这是布尔值。

问题是在if条件下,您正在比较toggleTemp[k]和i

其中toggleTemp[k]值为bool和false,表示0,因此每次条件都保持false。因为您的列表包含所有假值

如果要与索引进行比较,请执行以下条件

if (k == i) {

问题是在if条件下,您正在比较toggleTemp[k]和i

其中toggleTemp[k]值为bool和false,表示0,因此每次条件都保持false。因为您的列表包含所有假值

如果要与索引进行比较,请执行以下条件

if (k == i) {

所以总是错误的


所以始终为false。

您试图将布尔值与int值进行比较,而int值始终不会为true。 这就是错误的来源


我希望这会有所帮助。

您正在尝试将布尔值与int值进行比较,而int值始终不会为true。 这就是错误的来源


我希望这有帮助。

请显示分配或声明变量I的代码。您似乎在比较整数和布尔值@阿琼more@RandomGuru谢谢,我比较了int和bool值,这就是为什么列表没有更新,这是一个多么愚蠢的错误,但谢谢你们,欢迎你们。别忘了给我的答案投票,如果它对你有帮助的话,请把它标对@arjun More请显示分配或声明变量i的代码。您似乎在比较整数和布尔值@阿琼more@RandomGuru谢谢,我比较了int和bool值,这就是为什么列表没有更新,这是一个多么愚蠢的错误,但谢谢你们,欢迎你们。别忘了给我的答案投票,如果它对你有帮助的话,请把它标对@阿琼更多
if (toggleTemp[k] == i) {
if (false == 1) {