【问题标题】:why is the If statement is not working even if the condition is true? dart & flutter为什么即使条件为真,If 语句也不起作用?飞镖和颤振
【发布时间】:2023-01-07 21:39:08
【问题描述】:

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

我尝试做的代码如下

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

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

Both lists and result of if condition

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

【问题讨论】:

  • 如果您不覆盖“equals”方法,那么“contains”将不适用于自定义类。另外,您只检查最后一个值,因为循环将检查每个项目,完成后,只会检查最后一个项目是否相等。另外,当您获得真实值时,您正在检查“isNormal”是否为负数以打印“Normal”以及它“重试”的原因
  • 您的代码说“如果不正常,则打印正常”。这不是很好理解。
  • isNormal = userAnswer.every((item) => normalList.where((n) => n.id == item.id));

标签: flutter list dart if-statement


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-02-05
    • 2022-11-12
    • 2016-10-03
    • 2021-08-14
    • 1970-01-01
    • 2018-06-25
    • 2021-03-26
    • 2022-06-20
    • 1970-01-01
    相关资源
    最近更新 更多