If..then..else 문

If..then..else 문

If .. then .. else .. 문은 파스칼에서 가장 기본적인 조건 분기 구조예요.

출처: 문서

본문

ifthen 키워드 사이의 표현식은 불리언 결과 타입이어야 해요.

  • 표현식이 True로 평가되면 then 키워드 뒤의 문이 실행돼요.
  • 표현식이 False로 평가되면, else 키워드 뒤의 문이 (있다면) 실행돼요.

몇 가지 짚어둘 점이 있어요.

  • 불리언 표현식은 기본적으로 단락 평가(short-cut evalutation) 돼요. 즉 결과가 확실해지는 지점에서 평가가 멈춰요.
  • else 키워드 앞에는 세미콜론(;)을 붙일 수 없어요. 하지만 모든 문은 복합 문일 수 있어요.
  • 중첩된 If..then..else 구성에서는 어떤 else가 어떤 if와 짝을 이루는지 모호함이 생길 수 있어요. 규칙은 이래요. else 키워드는 (뒤로 검색하면서) 아직 else 키워드로 짝이 맞지 않은 첫 번째 if 키워드와 짝을 이뤄요.

예를 들면 다음 코드를 볼게요.

If exp1 Then
   If exp2 then
     Stat1
 else
   stat2;

겉보기와 달리 이 문은 문법적으로 다음 코드와 동일해요.

If exp1 Then
    begin
    If exp2 then
       Stat1
    else
       stat2
    end;

이것이 아니라 다음 코드와 동일한 게 아니에요.

{ NOT EQUIVALENT }
 If exp1 Then
    begin
    If exp2 then
       Stat1
    end
 else
    stat2;

후자의 구성을 원한다면 beginend 키워드가 반드시 있어야 해요. 헷갈릴 때는 추가해 두는 편이 좋아요.

다음은 유효한 문이에요.

If Today in [Monday..Friday] then
   WriteLn ('Must work harder')
 else
   WriteLn ('Take a day off.');

더 알아보기