Tea*_*App 3 java syntax if-statement coding-style
我有一个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 ...
}
Run Code Online (Sandbox Code Playgroud)
上面的代码只检查第一个条件并忽略,seg.getSegRef().getKind().equals("arc")但我想这应该在编译时引发一个问题,我是对的吗?我的逻辑工作一旦我通过逐行浏览调试它并找到了这个分号.如果有人可以解释,如果它是有效的语法,我将不胜感激.
请赐教!
wkl*_*wkl 11
将;使得Java认为,身体if条件完成后,即使在它之前没有其他的代码.实际上,if语句中的代码被执行,但是没有正文,因为;它存在.
这{ ...code to run...}只是一个执行的代码块,并且该块内部声明的任何内容在块外部都不可见.它总是在这里运行,因为它不是if块的一部分.
编辑:这是关于{ }块的另一个堆栈溢出问题:Java中的花括号是什么意思?