Loops can be simplified or removed


ID: java-best-practices/while-loop-with-literal-boolean

Language: Java

Severity: Notice

Category: Best Practices


Using do {} while (true); makes it less obvious that the loop runs forever, since the loop condition is placed after the loop body. By using while (true) {}, your code clearly indicates an infinite loop from the beginning.

The do {} while (false); construct is redundant and may cause confusion too. In a do-while loop, the loop body is executed first, and then the condition is checked. Since the condition while (false) always evaluates to false, the loop exits after one iteration. When an inner variable scope is required within this loop, a simple block {} can be used instead of the do-while construct.

Unlike the do {} while (false); above, the while (false) {} construct represents dead code because the loop condition here is evaluated first and the body will never execute. Removing unnecessary loops here can enhances your code’s readability and maintainability.

Non-Compliant Code Examples

public class Foo {
    while (false) { }
    do { } while (true);
    do { } while (false);
    do { } while (false | false);
    do { } while (false || false);

Compliant Code Examples

public class Foo {
    while (true) { }
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis