gpt4 book ai didi

java - if(boolean) 总是执行

转载 作者:行者123 更新时间:2023-12-02 14:36:35 24 4
gpt4 key购买 nike

这是我的简化代码

private static boolean isTrue()
{
return false;
}


public void Update()
{
if (isTrue())
doSomething();
}

出于某种奇怪的原因,无论 isTrue() 返回什么,doSomething() 总是会被执行。为什么?

编辑:在关闭 if 语句后,我在屏幕外的某个地方直接出现了一个分号,如下所示:

if (false);
doSomething();

就像这样 doSomething() 总是被执行。

最佳答案

For some odd reason DoSomething() gets always executed, no matter what IsTrue returns. Why?

仅当发生以下一种或多种情况时才会出现这种情况:

  • 还有其他线程调用 doSomething()
  • if 之后有 ;。 ✓
  • 您正在从其他地方调用它。
  • 这不是代码。
  • 这一天已经到来,计算机控制世界。

重要说明,不仅仅是问题:请关注Java Naming Conventions .

<小时/>

编辑后,我将解释为什么它总是被执行。

只是因为

if(something);
{
System.out.println("I'll be always printed!");
}

相当于

if(something) { }
{
System.out.println("I'll be always printed!");
}

始终使用 {} 是一个好习惯,即使 if 的正文包含只有一个声明,它更清晰,并且将帮助您避免将来可能出现的错误,就像 @GrijeshChauhan 提到的,如果您想在将来添加行。

关于java - if(boolean) 总是执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21531515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com