델파이의 제어문에 있어서 두 줄이상일 경우는 begin과 end를 사용한다.
C에서의 { }에 해당한다.
델파이에서 세미콜론(;)을 사용하는데 있어서 주의해야 될 점은 세미콜론은 항상 문장의 끝을 나타내지만은 않는다. 세미콜론은 문장을 구분하는 한가지 방법이다. 
문장을 구분하는 방법에는 end나 else도 있다.

goto문도 있지만 goto문을 사용하면 프로그램을 이해하기 힘들어짐으로 그다지 사용되지 않는다.

■ 조건문 if

if문의 일반형식

if 식
  then 문1
  else 문2

이다 문1, 문2는 한줄이나 두줄이상은 begin ... end로 묶일 수 있다.
if문에서 주의해야되는 것은 세미콜론 말고도 else나 end가 문장을 구분하게된다.

if nA > 10 then
  nB := 10;
else
  nB := 20;

C를 짜던 사람이라면 위 소서를 일반적으로 생각하면 문제가 없지만, 델파이에서는 문자게 생긴다.
델파이에서는   nB := 10;에서 if문이 끝나게 된다.
델파이에서의 소스는 아래와 같이 써야된다.

if nA > 10 then
  nB := 10
else
  nB := 20;

begin ... end로 묶인 경우는 아래 소스와 같이 else 위의 end에는 세미콜론을 붙여서는 안된다.

if nA > 10 then
begin
  nB := 10;
  nC := 11;
end
else
begin
  nB := 20;
  nC := 22;
end;

그리고 아래의 소스에서 nC := 11 뒤에 세미콜론이 붙지않아도 문제가 된지않는다. 
이것은 end가 문을 구분하는 것으로 인식하기 때문에 세미콜론이 반드시 필요하지 않다.

if nA > 10 then
begin
  nB := 10;
  nC := 11
end

■ 조건문 case

case문은 복수의 선택을 할때 필요한 문을 실행할 수 있다.
(C에서의 switch문에 해당한다.)

사용예

  case StrToInt(Edit1.Text) of
    3 :
      begin
        Label1.Caption := '3';
      end;
    4 :
      begin
        Label1.Caption := '4';
      end;
    else
      begin
        Label1.Caption := 'XX';
      end;
  end;

■ 반복문 while

while문은 루프의 처음에서 조건이 오고 조건이 성립할 때 반복하는 문이다.
(C에서의 while문에 해당)

사용예

ni := 0;
while ni < 10 do
begin
  AA[i] := 0;
  ni := ni + 1;
end;

■ 반복문 repeat until

repeat until문은 루프의 마지막에서 조건이 오고 조건이 성립할 때 까지 반복하는 문이다.
(C에서의 do while문과 비슷하지만 조금 틀리다.)

사용예

  ni := 0;
  repeat
    AA[ni] := 0;
    ni := ni + 1;
  until ni > 10;

■ 반복문 for

for문은 인덱스가 되는 값을 1씩 증가시키거나 감소시켜가며 반복하는 문이다.
(C의 for보다 유연성이 떨어짐)

  for ni := 0 to 9 do
  begin
    AA[ni] := ni;
  end;

인덱스를 감소시킬 때는 to 대신 downto를 써야된다.

  for ni := 9 downto 0 do
  begin
    AA[ni] := ni;
  end;

+ Recent posts