델파이 기초 다지기

조건문

조건에 따라 코드를 실행할 수 있는 조건문을 학습합니다. if 문, if else 문, case 문을 익힐 수 있습니다.

조건문

주어진 조건에 만족한 경우에 문장을 실행하는 문법.

조건식, 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이 없다는 것을 주의한다.

댓글

댓글 본문
  1. griffon0
    강의 동영상에서 오타라고 이야기 했습니다. the -> then
    대화보기
    • HyoSeong,
      좋은정보 감사합니다.
      if else 부분
      if 조건식 the
      오타인가요?
    버전 관리
    험프리
    현재 버전
    선택 버전
    graphittie 자세히 보기