flutter if语句产生2个非预期结果

nkoocmlb  于 2023-01-09  发布在  Flutter
关注(0)|答案(3)|浏览(131)
if (localCounter < 4) {
                                  localCounter++;
                                }
                                if (localCounter < 4) {
                                  globalCounter++;
                                }

我有两个int变量,它们被设置为0,当按下按钮时,它们会增加。下面是从setstate中提取的if语句。
这些语句的问题是localCounter达到4,而globalCounter在3处停止。
我也尝试了下面的语句,但是全局计数器没有停止上升

if (localCounter <= 4) {
                                  globalCounter++;
                                }

有没有人知道为什么本地计数器停在4而全局计数器只停在3?以及我如何才能重写它来修复这个问题?
非常感谢你的帮助

tf7tbtn2

tf7tbtn21#

你的第二个条件是错误的,因为localCounter总是等于4,并且每次globalCounter都递增。尝试用以下方法合并递增:

if (localCounter < 4) {
  localCounter++;
  globalCounter++;
}
liwlm1x9

liwlm1x92#

当然,全局计数器将在3处停止,因为当localCounter = 3globalCounter = 3时,在第一个if中,localCounter < 4为真,因此localCounter将递增到4,在这种情况下,第二个if将为false,因此globalCounter永远不会达到4。因此,最佳解决方案是在相同的if中合并这两个增量

if (localCounter < 4) {
  globalCounter++;
  localCounter++;
}
ljsrvy3e

ljsrvy3e3#

在第二个if语句中,您检查是localCounter而不是globalCounter。
你也可以这样想:

if (localCounter < 4 ) {
  localCounter++;
  globalCounter++; 
}

相关问题