Java,如果语句以半冒号结尾

问题描述 投票:0回答:1

我在使用jdk 13.0的Java中遇到以下奇怪行为:

String foo = "Something";
String bar = "Other";

if (foo.equals(bar));
{
   System.out.println("Face palm");
}

不幸的是,上方比较成功和“脸掌”已打印出来。导致此现象的原因是if语句末尾的分号的存在。

正确的方法是:

String foo = "Something";
String bar = "Other";

if (foo.equals(bar))
{
   System.out.println("Face palm");
}

任何人都可以解释一下Java为什么会这样吗?

这仅仅是编译器未捕获的语法错误吗?

java syntax
1个回答
2
投票

这并不意味着比较成功-基本上,您只是用空主体创建了if语句,然后打开了本地匿名代码块(从{开始)

在这种情况下,Face palm值将始终被打印出来-无论结果如何。

在这里阅读更多:

© www.soinside.com 2019 - 2024. All rights reserved.