Do not use a semicolon after an if
, for
, or while
condition because it typically indicates programmer error and can result in unexpected behavior.
Noncompliant Code Example
In this noncompliant code example, a semicolon is used immediately following an if
condition:
if (a == b); { /* ... */ }
The statements in the apparent body of the if
statement are always evaluated regardless of the result of the condition expression.
Compliant Solution
This compliant solution eliminates the semicolon and ensures that the body of the if
statement is executed only when the condition expression is true:
if (a == b) { /* ... */ }
Applicability
Placing a semicolon immediately following an if
, for
, or while
condition may result in unexpected behavior.
Automated Detection
Tool | Version | Checker | Description |
---|---|---|---|
SonarQube Java Plugin | Unable to render {include} The included page could not be found. | EmptyStatementUsageCheck |
Bibliography
§2.7.2, "Errors of Omission and Addition" |