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。