Java 'if'语句结尾的分号
今天,在搜索错误半小时之后,我发现可以在if语句后加上分号而不是代码,如下所示:
if(a == b);// Do stuff
从根本上讲,这意味着无论是否a
相等b
,都将完成工作,并且该if
语句毫无意义。Java为什么不给我一个错误?有什么情况会有用吗?
回答:
Java语言规范说:
空话
空语句不执行任何操作。
EmptyStatement: ;
空语句的执行总是正常完成
从本质上讲,这意味着你要在a == b时执行空语句
if(a == b);
此问题有两种主要解决方案:
你可以通过使用代码格式化和周围里面的东西避免空语句的问题if有{和}。这样,你的空语句将更具可读性。
if(a == b){ ;
}
你还可以检查用于静态代码分析的工具,例如:
- Findbugs
- Checkstyle
- Pmd
他们可以立即突出显示诸如此类的问题。
我建议结合两种解决方案。
以上是 Java 'if'语句结尾的分号 的全部内容, 来源链接: utcz.com/qa/433798.html