조건문
주어진 조건에 만족한 경우에 문장을 실행하는 문법.
조건식, 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이 없다는 것을 주의한다.