Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果(布尔)始终执行_Java - Fatal编程技术网

Java 如果(布尔)始终执行

Java 如果(布尔)始终执行,java,Java,这是我的代码 private static boolean isTrue() { return false; } public void Update() { if (isTrue()) doSomething(); } 出于某种奇怪的原因,doSomething()总是被执行,不管isTrue()返回什么。 为什么? 编辑:在关闭if语句后,我在屏幕外的某个地方有一个分号,如下所示: if (false); doSomething(); 像这样,

这是我的代码

private static boolean isTrue()
{
    return false;
}


public void Update()
{
    if (isTrue())
        doSomething();
}
出于某种奇怪的原因,
doSomething()
总是被执行,不管
isTrue()
返回什么。 为什么?

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

if (false);
    doSomething();
像这样,
doSomething()
总是被执行

出于某种奇怪的原因,DoSomething()总是被执行,不管发生什么 伊斯特鲁回来了。为什么?

仅当发生以下一种或多种情况时,才可以执行此操作:

  • 还有其他线程调用
    doSomething()
  • 你有
    ,则在
    之后编码。✓
    
  • 你是从别的地方打电话来的
  • 这不是代码

  • 计算机控制世界的日子已经到来
重要提示,不仅仅是问题:请遵循以下步骤


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

这只是因为

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

if(something) { }
{
   System.out.println("I'll be always printed!");
}
总是拥有
{
}
是一个很好的做法,即使
的主体只包含一条语句,如果您将来想添加行,它会更清晰,并将帮助您避免将来可能出现的错误,如@GrijeshChauhan提到的。

公共类Main{

/**
 * @param args
 */
public static void main(String[] args) {

    Update();
}
private static boolean IsTrue()
{
    return false;
}


public static void Update()
{
    if (IsTrue())
        DoSomething();
}
public static void DoSomething()
{
   System.out.println("In DoSomething");
}
}


这段代码正在按设计工作。如果IsTrue()方法retruns true,那么它将打印“In DoSomething”。

是否尝试运行您发布的代码段?顺便说一下,检查一下你没有
,则直接在
后面进行编码>。这太少了,无法解决。
定义(false,true)
;-)确保你没有类似于
if(IsTrue())。请注意分号并遵守Java命名约定:
isTrue()
doSomething()
是。有人对我的代码很有幽默感。这是一个很难理解的问题。^“这一天已经到来,计算机控制世界。”-我直到现在才想到:)@maronum我想在你的最后一行加上:
“即使if的主体只包含一条语句。”
+
“原因:如果您以后决定在正文中添加一条语句,您不必记得添加大括号来完成复合语句,因此即使在单个语句中使用大括号也是安全的。”
add in your response。