Braces required for multiline if or if/else statements.

This product is not supported for your selected Datadog site. ().
이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우 언제든지 연락주시기 바랍니다.

Metadata

ID: kotlin-code-style/multiline-if-else

Language: Kotlin

Severity: Notice

Category: Code Style

Description

This rule enforces the use of curly braces ({}) for if and if/else statements in Kotlin when their bodies span multiple lines. Omitting braces in such cases can introduce ambiguity, making the code’s control flow unclear and potentially leading to logical errors if additional statements are introduced without careful re-evaluation. This practice is crucial for maintaining code readability and preventing the “dangling else” problem, where an else branch might inadvertently associate with the wrong if statement.

How to remediate

To remediate this, always enclose the multiline body of if and else statements within curly braces. This explicit encapsulation clearly defines the scope of the conditional blocks, enhancing code clarity and maintainability. For instance, transform if (condition)\n statement1\n statement2 into if (condition) {\n statement1\n statement2\n}. Applying braces consistently ensures that your code behaves as intended and is easier to understand and debug for other developers.

Arguments

  • foo: Blah

Non-Compliant Code Examples

if (true)
    doSomething()
else
    doSomethingElse()

private fun doSomethingFunc() {
    if (1 != 2) // A Comment
        doSomething()
    else // Another comment 
        doSomething()
}

Compliant Code Examples

if (true) {
    doSomething()
} else {
    doSomethingElse()
}

if (true) doSomething()

if (true)
    return 1

if ((now - prev) < CONSTANT_VAL
    && !otherCondition // only in special cases
) {
    log.debug("A Log Line")
    return
}

if (true) {
    doSomething()
    doSomethingElse()
} else {
    doSomethingElse()
    doSomethingElse()
    doSomethingElse()
}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

원활한 통합. Datadog Code Security를 경험해 보세요