코딩 이야기/델파이 코딩
델파이 제어 구조
안개소리
2025. 4. 15. 07:54
델파이 제어 구조
1. 조건문
주어진 조건에 따라 다른 코드를 실행합니다.
1.1. IF 문
- IF-THEN: 조건이 참이면
then
키워드 뒤의 코드를 실행합니다.var Number: Integer; begin Number := 10; if Number > 5 then ShowMessage('숫자가 5보다 큽니다.'); end;
- IF-THEN-ELSE: 조건이 참이면
then
뒤, 거짓이면else
뒤의 코드를 실행합니다.var Number: Integer; begin Number := 3; if Number > 5 then ShowMessage('숫자가 5보다 큽니다.') else ShowMessage('숫자가 5보다 작거나 같습니다.'); end;
- IF-THEN-ELSE IF (else if): 여러 조건을 순차적으로 확인합니다.
var Grade: Char; begin Grade := 'B'; if Grade = 'A' then ShowMessage('최우수') else if Grade = 'B' then ShowMessage('우수') else if Grade = 'C' then ShowMessage('보통') else ShowMessage('노력 필요'); end;
1.2. CASE 문
- 단순 CASE 문: 하나의 표현식 값을 여러 상수 값과 비교합니다.
var Day: Integer; DayName: String; begin Day := 3; case Day of 1: DayName := '월요일'; 2: DayName := '화요일'; 3: DayName := '수요일'; 4: DayName := '목요일'; 5: DayName := '금요일'; else DayName := '주말'; end; ShowMessage('오늘은 ' + DayName + '입니다.'); end;
- 범위 CASE 문: 값의 범위를 지정하여 비교할 수 있습니다.
var Score: Integer; Result: String; begin Score := 85; case Score of 90..100: Result := '합격 (매우 잘함)'; 80..89: Result := '합격 (잘함)'; 70..79: Result := '합격 (보통)'; else Result := '불합격'; end; ShowMessage('결과: ' + Result); end;
2. 반복문
특정 조건이 만족될 때까지 코드 블록을 반복적으로 실행합니다.
2.1. FOR 문
- FOR TO DO: 지정된 범위의 값을 순차적으로 반복합니다.
var i: Integer; begin for i := 1 to 5 do ShowMessage('카운터: ' + IntToStr(i)); end;
- FOR DOWNTO DO: 지정된 범위의 값을 역순으로 반복합니다.
var i: Integer; begin for i := 5 downto 1 do ShowMessage('카운터 (역순): ' + IntToStr(i)); end;
2.2. WHILE 문
주어진 조건이 참인 동안 코드를 반복합니다. 루프 시작 전에 조건을 평가합니다.
var
Counter: Integer;
begin
Counter := 1;
while Counter <= 5 do
begin
ShowMessage('카운터 (WHILE): ' + IntToStr(Counter));
Inc(Counter); // Counter := Counter + 1;
end;
end;
2.3. REPEAT UNTIL 문
주어진 조건이 참이 될 때까지 코드를 반복합니다. 루프 본문이 최소 한 번 실행된 후 조건을 평가합니다.
var
Counter: Integer;
begin
Counter := 1;
repeat
ShowMessage('카운터 (REPEAT): ' + IntToStr(Counter));
Inc(Counter); // Counter := Counter + 1;
until Counter > 5;
end;
3. 기타 제어문
- BREAK:
for
,while
,repeat
루프를 즉시 종료합니다.var i: Integer; begin for i := 1 to 10 do begin ShowMessage('카운터: ' + IntToStr(i)); if i = 5 then break; end; ShowMessage('루프 종료'); end;
- CONTINUE: 현재 루프의 나머지 코드를 건너뛰고 다음 반복을 시작합니다.
var i: Integer; begin for i := 1 to 5 do begin if i = 3 then continue; ShowMessage('카운터: ' + IntToStr(i)); end; end; // 출력: 1, 2, 4, 5
- GOTO: 지정된 레이블로 프로그램 실행 흐름을 옮깁니다. 사용은 권장되지 않습니다.
label StartPoint; var i: Integer; begin i := 1; StartPoint: ShowMessage('카운터: ' + IntToStr(i)); Inc(i); if i <= 5 then goto StartPoint; end;
- EXIT: 현재 프로시저나 함수를 즉시 종료합니다.
procedure DoSomething(Value: Integer); begin if Value = 0 then exit; ShowMessage('입력 값: ' + IntToStr(Value)); end; begin DoSomething(10); // "입력 값: 10" 출력 DoSomething(0); // 즉시 종료 ShowMessage('프로그램 계속'); end;