## Why is this an issue?

Empty statements represented by a semicolon `;` are statements that do not perform any operation. They are often the result of a typo or a misunderstanding of the language syntax. It is a good practice to remove empty statements since they don’t add value and lead to confusion and errors.

### Code examples

#### Noncompliant code example

    void doSomething() {
      ; // Noncompliant - was used as a kind of TODO marker
    }

    void doSomethingElse() {
      System.out.println("Hello, world!");; // Noncompliant - double ;
      // ...
    }

#### Compliant solution

    void doSomething() {}

    void doSomethingElse() {
      System.out.println("Hello, world!");
      // ...
      for (int i = 0; i < 3; i++) ; // Compliant if unique statement of a loop
      // ...
    }

## Resources

### Documentation

- CERT, MSC12-C. - Detect and remove code that has no effect or is never executed
- CERT, MSC51-J. - Do not place a semicolon immediately following an if, for, or while condition
- CERT, EXP15-C. - Do not place a semicolon on the same line as an if, for, or while statement