Groovy는 자바의 평범한 if-else 문법을 지원합니다:

def x = false
def y = false

if ( !x ) {
    x = true
}

assert x == true

if ( x ) {
    x = false
} else {
    y = true
}

assert x == y

또한 삼항연산자도 지원합니다:

def y = 5
def x = (y > 1) ? "worked" : "failed"
assert x == "worked"

switch 문

Groovy의 switch 문은 자바의 switch 문에 대한 하위호환성을 제공합니다. 여러 경우에 대해 하나의 코드를 공유하고자 하는 경우 "case" 사이를 지나 다음 "case"로 넘어갈 수 있습니다.

Groovy switch 문의 차이점은 비교가 수행될 수 있는 모든 값들이 사용될 수 있다는 점입니다.

def x = 1.23
def result = ""

switch ( x ) {
    case "foo":
        result = "found foo"
        // 다음 case로 넘어감

    case "bar":
        result += "bar"

    case [4, 5, 6, 'inList']:
        result = "list"
        break

    case 12..30:
        result = "range"
        break

    case Integer:
        result = "integer"
        break

    case Number:
        result = "number"
        break

    default:
        result = "default"
}

assert result == "number"

Switch 무은 다음 종류의 비교를 지원합니다

switch 문의 작동 방식

case 문은 case에 주어진 값에 대해 isCase(switchValue) 메서드를 호출함으로써 일치를 판별합니다. isCase() 메서드의 기본 구현은 equals(switchValue) 를 호출 하도록 되어 있지만 각 타입에 따라 다양하게 재정의되어 있습니다.

따라서 switch/case에서 여러분이 만든 타입이 사용될 수 있게 하려면 isCase(switchValue) 를 제정의하면 됩니다.matching.