일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 인스톨
- c#
- 초보
- 파이어버드
- Visual Studio 2005
- Firebird
- MFC
- 기초
- 데이터베이스
- 시리얼 통신
- VB.NET
- SDK
- xml
- SQL
- Delphi
- WIN32 SDK
- Visual Basic
- 파라미터
- 문자열
- 입문
- winsock
- MySQL
- dll
- 예제
- 소니
- PostgreSQL
- 설치
- vb
- 셋업
- 델파이
- Today
- Total
프로그래밍 노트
델파이의 제어문 (if, case, while, repeat until, for) 본문
델파이의 제어문에 있어서 두 줄이상일 경우는 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;