Empty statements, i.e. ;, are usually introduced by mistake, for example because:
;;.Examples:
void doSomething() {
; // Non-Compliant - was used as a kind of TODO marker
}
System.out.println("Hello, world!");; // Non-Compliant - double ;
Rarely, they are used on purpose, as the body of a loop:
for (int i = 0; i < 3; System.out.println(i), i++); // Non-Compliant
It is a bad practice to have side-effects outside of the loop body, and therefore that code should be refactored into:
for (int i = 0; i < 3; i ++) { // Compliant
System.out.println(i);
}