gpt4 book ai didi

java - 为什么没有编译时错误?奇怪 - Java

转载 作者:搜寻专家 更新时间:2023-11-01 04:02:15 24 4
gpt4 key购买 nike

我有一个 if 语句检查一些值,并遇到了一个奇怪的错误(不确定!)。我的代码在语法上不正确,结果产生了错误的结果,但是 eclipse 在编译时没有引发任何错误。为什么我的以下代码有效?

if((this.trackPointList.get(point).getTurnOutId().equals(seg.getSegRef().getTurnOut())) && seg.getSegRef().getKind().equals("arc")); // <---- See here I have semicolon
{
... code to run ...
}

以上代码仅检查第一个条件并忽略 seg.getSegRef().getKind().equals("arc") 但我想这应该会在编译时引发问题,对吗?一旦我通过逐行浏览并找到这个分号来调试它,我的逻辑就起作用了。如果有人可以解释,如果它是一个有效的语法,我将不胜感激。

请赐教!

最佳答案

; 使 Java 认为 if 条件的主体是完整的,即使它前面没有其他代码也是如此。实际上,执行了 if 语句中的代码,但没有主体存在,因为 ; 在那里。

{ ...要运行的代码...} 只是一个执行的代码块,在该 block 内声明的任何内容在 block 外都是不可见的。它总是在这里运行,因为它不是 if block 的一部分。

编辑:这是关于 { } block 的另一个堆栈溢出问题:What do curly braces in Java mean by themselves?

关于java - 为什么没有编译时错误?奇怪 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7523518/

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