gpt4 book ai didi

java - 'if' 语句末尾的分号

转载 作者:IT老高 更新时间:2023-10-28 13:52:24 26 4
gpt4 key购买 nike

今天找了半个小时的bug,发现可以在if语句后面加分号代替代码,像这样:

if(a == b);
// Do stuff

这基本上意味着无论 a 是否等于 b 都会完成,而 if 语句没有任何意义。为什么Java不给我一个错误?在什么情况下这会有用?

最佳答案

为什么会这样?

Java Language Specification说:

The Empty Statement

An empty statement does nothing.

EmptyStatement:
;

Execution of an empty statement always completes normally

它本质上意味着你要执行空语句 if a==b

if(a == b);

你应该怎么做:

这个问题有两种主要的解决方案:

  1. 您可以通过使用代码格式化程序来避免空语句的问题以及在 if 中使用 {} 包围的东西。通过做这个您的空语句将更具可读性。

    if(a == b){
    ;
    }
  2. 您还可以检查用于静态代码分析的工具,例如:

    他们可以立即突出显示此类问题。

我建议将这两种解决方案结合起来。

关于java - 'if' 语句末尾的分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14112515/

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