if — 조건에 따라 스크립트 실행

if — 조건에 따라 스크립트 실행

어떤 조건이 참일 때만 어떤 동작을 하고 싶을 때, 모든 언어의 기본인 분기 명령어 if를 써요. 조건이 참이면 해당 본문을, 아니면 다른 본문을 실행하는 구조예요.

출처: Tcl Built-In Commands — if

본문

시그니처

if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?

ifexpr1을 표현식으로 평가해요(expr이 인자를 평가하는 것과 같은 방식). 표현식의 값은 불리언이어야 해요(0은 거짓, 0이 아닌 숫자는 참인 숫자 값, 또는 true·yes(참)·false·no(거짓) 같은 문자열 값). 참이면 body1을 Tcl 인터프리터에 넘겨 실행해요. 아니라면 expr2를 평가하고 참이면 body2를 실행하는 식으로 이어져요. 어떤 표현식도 참으로 평가되지 않으면 bodyN을 실행해요.

thenelse 인자는 명령어를 읽기 쉽게 해 주는 선택적 '노이즈 단어'예요. elseif 절은 0개를 포함해 몇 개든 올 수 있어요. bodyNelse가 함께 생략되면 생략할 수 있어요.

반환값은 실행된 본문 스크립트의 결과예요. 아무 표현식도 0이 아니지 않고 bodyN도 없었다면 빈 문자열이에요.

예제

단순한 조건:

if {$vbl == 1} { puts "vbl is one" }

else 절이 있는 경우:

if {$vbl == 1} {
    puts "vbl is one"
} else {
    puts "vbl is not one"
}

elseif 절까지 있는 경우:

if {$vbl == 1} {
    puts "vbl is one"
} elseif {$vbl == 2} {
    puts "vbl is two"
} else {
    puts "vbl is not one or two"
}

표현식은 여러 줄일 수 있는데, 그럴 때는 선택적 then 키워드를 쓰면 가독성이 좋아져요:

if {
    $vbl == 1
    || $vbl == 2
    || $vbl == 3
} then {
    puts "vbl is one, two or three"
}

더 알아보기