为什么即使条件为真,If 语句也不起作用?飞镖和颤动[关闭]

问题描述 投票:0回答:2

为什么即使条件为 true,If (isNormal == true) 语句也不起作用

我尝试做的代码如下

  _checkResult() {
    bool isNormal = false;
    isNormal = userAnswer.every((item) => normalList.contains(item));
    if (isNormal) {
      print("Normal");
    } else {
      print("Try Again");
    }
  }

我已经尝试打印两个列表以检查两个数据是否相同,

如您所见,两个列表相同,但结果没有改变。请帮忙

flutter list dart if-statement
2个回答
1
投票

您可以关注其中任何一个

bool withEvery(List<int> mainItems, List<int> subItems) {
    final result = subItems.every((element) => mainItems.contains(element));
    return result;
  }

  bool containsItem(List<int> mainItems, List<int> subItems) {
    for (final i in subItems) {
      if (!mainItems.contains(i)) {
        return false;
      }
    }
    return true;
  }

获得想要的结果。

测试用例

  test("containsItem n check", () {
    final normalList = [1, 3, 2];
    final userAnswer = [1, 2, 3];
    final userAnswer1 = [2, 1, 3];
    final userAnswer2 = [2, 1, 0];
    final result = containsItem(normalList, userAnswer);
    expect(result, true);
    final result1 = containsItem(normalList, userAnswer1);
    expect(result1, true);
    final result2 = containsItem(normalList, userAnswer2);
    expect(result2, false);
  });

  test("withEvery ", () {
    final normalList = [1, 3, 2];
    final userAnswer = [1, 2, 3];
    final userAnswer1 = [2, 1, 3];
    final userAnswer2 = [2, 1, 0];
    final result = withEvery(normalList, userAnswer);
    expect(result, true);
    final result1 = withEvery(normalList, userAnswer1);
    expect(result1, true);
    final result2 = withEvery(normalList, userAnswer2);
    expect(result2, false);
  });

你的方法也运行良好


0
投票

我不确定我是否理解这个问题,但是 我假设您在列表内容相同时尝试打印“正常”。 如果是的话,那么你的if条件应该是这样的

if(isNormal){ print('Normal'); }

意味着您必须按原样放置 bool 变量,但您使用了 Not (!) 运算符,因此它会给出相反的结果。

© www.soinside.com 2019 - 2024. All rights reserved.