14.2 if...else 조건문

if ... else 조건문은 if 조건문과 유사한 조건식을 테스트하는 데 사용됩니다. 그러나 if 조건문에서는 test_expressionFALSE이면 아무 일도 일어나지 않지만 if ... else 조건문에서는 else 부분이 평가됩니다.

if...else 조건문의 플로우 차트는 다음과 같습니다.

Flowchart of if…else in R Programming

if … else 조건문의 형식은 다음과 같습니다.

# if...else 조건문의 형식
if (test_expression) {            # 조건식을 검사하고 조건이 TRUE 이면 실행될 블럭을 지정합니다. (TRUE 블럭)
        statement 1
} else {                          # 조건이 FALSE이면 실행될 블럭을 지정합니다.  (FALSE 블럭)
        statement 2
}

다음은if 조건을 이용하여 벡터의 값에 음수 값이 있는지 확인하는 if 조건문을 설명한 앞의 예를 확장한 것입니다. if 조건문의 조건식 결과가 TRUE이면 TRUE 블럭을 실행하고, FALSE이면 else 이하의 FALSE 블럭을 실행하게 됩니다.

# 다음의 if 조건문은 TRUE 블럭을 실행하는 예입니다.
x <- c(8, 3, -2, 5)

if(any(x < 0)){
        print("x contains negative numbers")
} else{                                            # FASLE 블럭은 실행되지 않습니다.
        print("x contains all positive numbers")
}
## [1] "x contains negative numbers"
# 다음의 if 조건문은 FALSE 블럭을 실행하는 예입니다.
y <- c(8, 3, 2, 5)

if(any(y < 0)){                                    # TRUE 블럭은 실행되지 않습니다.
        print("y contains negative numbers")
} else{
        print("y contains all positive numbers")
}
## [1] "y contains all positive numbers"

앞에서 살펴본 예를 if … else조건문을 이용하여 한줄로도 간단히 표현할 수 있습니다.

# 대체적 방법
if(any(x < 0)) print("x contains negative numbers") else print("x contains all positive numbers")
## [1] "x contains negative numbers"