조건문
주어진 조건에 만족한 경우에 문장을 실행하는 문법.
조건식, Boolean
조건문의 조건식은 Boolean 자료형을 갖습니다. 즉, 참 또는 거짓.
- 비교 연산자 - =, <>, <, >, <=, >=
- 논리 연산자 - not , and, or
if 문
조건식이 True인 경우 문장을 실행한다.
if 조건식 then
begin
명령문1;
명령문2;
end;
if 조건식 then
명령문;
if True then
ShowMessage('True');
if False then
ShowMessage('False');
Bool := (1>0) and (True or False) and not (True and False);
if Bool then
begin
end;
if Edit1.Text = '' then
ShowMessage('항목을 입력하세요.');
if Age < 18 then
begin
ShowMessage('성인이 아닙니다.');
DoSomething;
Exit;
end;
조건식은 불린 자료형(True 또는 False)이어야 한다.
조건식이 True인 경우만 명령문이 실행된다.
명령문은 한줄 또는 begin...end로 감싼 여러줄을 사용할 수 있다.
if else 문
조건식이 True인 경우 if 이후의 문장을 False인 경우 else 이후의 문장을 실행한다.
if 조건식 the
begin
True명령문1;
True명령문2;
end
else
begin
False명령문1;
False명령문2;
end;
if True then
ShowMessage('True')
else
ShowMessage('False');
if False then
ShowMessage('True')
else
ShowMessage('False');
if I mod 2 = 0 then
begin
ShowMessage('짝수입니다.')
end
else
begin
ShowMessage('홀수입니다.');
end;
조건식이 True인 경우 True명령문, False인 경우 False명령문이 실행된다.
명령문들은 한줄 또는 begin...end로 감싼 여러줄을 사용할 수 있다.
else 앞의 end에는 세미콜론(;)이 포함되지 않는 것을 주의한다.
중첩된 if else 문
if else 문을 중첩해 사용할 수 있다.
if 조건식1 then
begin
True명령문1;
end
else if 조건식2 then
begin
True명령문2;
end
else
begin
False명령문;
end;
if 조건식1 then
begin
if 조건식2 then
begin
명령문1;
end;
명령문2;
end
else
begin
명령문3;
end;
조건식1이 True인 경우 True명령문1이 실행된다.
조건문1이 False이고, 조건문2가 True인 경우 True명령문2가 실행된다.
조건문1과 조건문2가 모두 False인 경우 else의 False 명령문이 실행된다.
else if문의 계속 추가할 수 있지만, if문의 길이가 길어지면 코드를 읽기가 어려워지므로 너무 길지 않게 작성해야 한다.
if문 안에 if문이 포함될 수 있으므로, begin...end로 문장을 감싸고, 들여쓰기로 조건과 명령을 구분해 가독성을 높여야 유지보수가 용이하다.
case 문
순서가 있는 값(Ordinal)이 조건값과 같은 문장을 실행한다.
case (순서가 있는)값 of
조건값1:
begin
명령문1;
end;
조건값2,조건값3: 명령문2;
조건값4..조건값5: 명령문3;
...
else
else명령문;
end;
case Age of
0: Title := '태아';
1..7: Title := '유아';
8..13: Title := '초등학생';
14,15,16: Title := '중학생';
17..19: Title := '고등학생';
else Title := '성인';
end;
case의 값(또는 식)은 순서가 있는 자료형(정수, 열거형, Char 등)이어야 한다.
식에서 함수를 사용할 수 있지만, 가독성을 위해 함수의 결과값을 변수에 담아 변수를 식에서 사용하는 것이 좋다.
조건값은 식의 결과 값을 예상해 하나 또는 여러개의 값(쉽표로 구분) 또는 범위(2개의 값 사이에 마침표(.)2개)로 작성해야 한다.식의 결과 값과 조건값이 같으면 조건값 뒤의 명령문을 실행한다. 명령문은 한줄 또는 begin...end로 감싼 여러줄로 작성할 수 있다.
식의 결과 값이 지정한 값에 포함되지 않으면 else 이후의 else명령문이 실행된다.
else 절은 선택사항으로 else 절을 포함하지 않고도 case 문을 구성할 수 있다.
case 문은 end;로 종료된다. case...end;로 begin이 없다는 것을 주의한다.

