If..then..else 문
If..then..else 문
If .. then .. else .. 문은 파스칼에서 가장 기본적인 조건 분기 구조예요.
출처: 문서
본문
if와 then 키워드 사이의 표현식은 불리언 결과 타입이어야 해요.
- 표현식이
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;
후자의 구성을 원한다면 begin과 end 키워드가 반드시 있어야 해요. 헷갈릴 때는 추가해 두는 편이 좋아요.
다음은 유효한 문이에요.
If Today in [Monday..Friday] then
WriteLn ('Must work harder')
else
WriteLn ('Take a day off.');