if .. then 또는 if .. then .. else 를 사용해 조건이 참일 때 해당 코드를 실행합니다. C 계열 언어와 다르게 파스칼의 조건식에는 괄호를 감쌀 필요가 없습니다.
var
A: Integer;
B: boolean;
begin
// 조건 성립 후 실행문이 한 줄일 경우 begin end 불필요
if A > 0 then
DoSomething;
// 조건 성립 후 여러 줄 실행 시 begin end 로 블록 필수로 감싸기
if A > 0 then
begin
DoSomething;
AndDoSomethingMore;
end;
// 한 줄 if-else 구조
if A > 10 then
DoSomething
else
DoSomethingElse;
// 위 코드와 논리 완전 동일: 비교 결과를 불린 변수에 먼저 저장 후 사용
B := A > 10;
if B then
DoSomething
else
DoSomethingElse;
end;Code language: JavaScript (javascript)
else 결합 규칙
else 는 자기와 가장 가깝고 아직 else가 짝지어지지 않은 if에 묶입니다. 아래 코드는 예상대로 작동합니다:
if A <> 0 then
if B <> 0 then
AIsNonzeroAndBToo
else
AIsNonzeroButBIsZero;Code language: HTML, XML (xml)
여기 else는 안쪽 if B <> 0 에 속합니다.
블록으로 감싸지 않은 중첩 if는 문법상 유효하지만 가독성이 매우 떨어집니다. begin … end 로 안쪽 중첩 전체를 감싸는 작성법을 권장합니다. 들여쓰기가 엉켜도 논리 경계가 명확해져 분기를 추가/삭제할 때 버그를 줄입니다.
최적화 표준 작성법:
if A <> 0 then
begin
if B <> 0 then
AIsNonzeroAndBToo
else
AIsNonzeroButBIsZero;
end;Code language: HTML, XML (xml)
- if 뒤 조건에 괄호 없음 (C/C++/Java는 필수, 파스칼은 반대) ;
- then 바로 뒤 한 줄만 있을 경우
begin end생략 가능; 여러 줄일 경우 필수 ; else는 가장 가까운 안쪽 if와 짝지어지며, 중첩 구문은 블록을 강제로 사용해 모호함 제거 ;- 비교식 (예:
A>10) 을 불린 변수에 직접 대입 가능.
아래는 실행 가능한 전체 예시: 점수 등급 판별
논리 규칙:
- 90 이상 → A
- 80 이상 90 미만 → B
- 60 이상 80 미만 → C
- 60 미만 → D
{$ifdef FPC} {$mode objfpc} {$H+} {$endif}
{$codepage utf8}
program ScoreLevel;
var
score: Integer;
begin
Write('시험 점수를 입력하세요: ');
ReadLn(score);
if score >= 90 then
Writeln('등급: A')
else if score >= 80 then
Writeln('등급: B')
else if score >= 60 then
Writeln('등급: C')
else
Writeln('등급: D');
ReadLn;
end.Code language: PHP (php)
컴파일 후 실행
시험 점수를 입력하세요: 96
등급: A
프로그램에서 점수 입력을 요청하고 입력 완료 후 해당 등급을 출력합니다.
한글 등 비영문 문자가 깨질 경우 아래 한 줄을 추가하세요: {$codepage utf8}
등급 계산 로직을 함수로 캡슐화할 수도 있습니다.
{$ifdef FPC} {$mode objfpc} {$H+} {$endif}
{$codepage utf8}
program ScoreLevelFunc;
function GetLevel(s: Integer): string;
begin
if s >= 90 then
Result := 'A'
else if s >= 80 then
Result := 'B'
else if s >= 60 then
Result := 'C'
else
Result := 'D';
end;
var
score: Integer;
begin
Write('점수: ');
ReadLn(score);
Writeln('등급: ', GetLevel(score));
ReadLn;
end.Code language: PHP (php)

Previous: 함수, 프로시저 및 기본 원시 타입
Next: 논리, 관계 및 비트 연산자