문장 및 연산자
DelphiScript 문
DelphiScript에서 문은 다른 문이 포함되어 있지 않을 때 '단순'한 문으로 간주됩니다. 단순문의 예로는 할당문과 프로시저 호출이 있습니다.
X := Y + 10; // assignment ShowMessage('Hello World!'); // procedure call
복합 문은 여러 문으로 구성됩니다.
Begin If A > B Then ShowMessage('A is bigger'); Else ShowMessage('B is bigger'); A := 0; B := 0; End;
조건문
DelphiScript에는 스크립트 내의 실행 흐름에 영향을 미치는 제어 문이 있습니다. 가장 일반적인 제어 문은 If..Then
If Then 문
If Then If..Then
If Condition Then Begin // code here End Else Begin // code here End;
Case Of 문
복잡한 일련의 IfCase
DelphiScript는 유형이 지정되지 않은 언어이므로 Case 문에서는 어떤 유형이든 사용할 수 있습니다. Case 문에는 (Case Of 조건 내에서) 선택자의 값과 일치하는 레이블이 없을 경우 실행되는 Else 문이 포함될 수 있습니다.
Case Char of '+' : Text := 'Plus sign'; '-' : Text := 'Minus sign'; '*', '/': Text := 'Multiplication or division'; '0'..'9': Text := 'Number'; 'a'..'z': Text := 'Lowercase character'; 'A'..'Z': Text := 'Uppercase character'; else Text := 'Unknown character'; End;
Case UserName of 'Jack', 'Joe' : IsAdministrator := true; 'Fred' : IsAdministrator := false; else Raise('Unknown User'); End;
With 문
With With
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
For-To-Do 루프
For For..To..Do
For counter := start To end Do Begin // code here End;
ForFor..To..DoDownToFor..To..Do
Repeat Until 루프
이 RepeatRepeat
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
While Do 루프
A WhileRepeat
Randomize; I := 0; While I 1000 do Begin I := I + Random (100); Add ('Random Number: ' + IntToStr (I)); End;
Continue 문
Continue ContinueGotoForWhileRepeat
var F: File; i: Integer; Begin For i := 0 to (FileListBox1.Items.Count - 1) do Begin Try If FileListBox1.Selected[i] Then Begin If not FileExists(FileListBox1.Items.Strings[i]) then Begin MessageDlg('File: ' + FileListBox1.Items.Strings[i] + 'not found', mtError, [mbOk], 0); Continue; End; AssignFile(F, FileListBox1.Items.Strings[i]); Reset(F, 1); ListBox1.Items.Add(IntToStr(FileSize(F))); CloseFile(F); End; Finally { do something here } End; End; End;
Goto 레이블 문
이 GotoGoto labellabel: statement
라벨은 유효한 식별자라면 무엇이든 사용할 수 있습니다. 라벨 선언과 Goto
Label StartHere; // code StartHere: Beep; Goto StartHere;
Exit 문
이 ExitExitTry..FinallyFinallyExit
Begin Server := SchServer; If Server = Nil Then Begin ShowError('No SchServer started'); Exit; End;
Break 문
이 BreakForWhileRepeat
Var S: string; Begin While True do Begin ReadLn(S); Try if S = '' then Break; WriteLn(S); Finally { do something for all cases } End; End; End;
DelphiScript 표현식 연산자
일반적으로 식은 상수, 변수, 리터럴 값, 연산자 및 함수 결과의 유효한 조합입니다. 식은 변수에 할당할 값을 결정하거나, 함수의 파라미터를 계산하거나, 조건을 검사하는 데 사용됩니다. 식에는 함수 호출이 포함될 수 있습니다.
DelphiScript에는 여러 가지 Logical 연산자, 산술 연산자, 부울 연산자 및 관계 연산자가 있습니다. 이러한 연산자들은 우선순위 순서(아래 참조)에 따라 그룹화되어 있으며, 이는 Basic, C 등에서 사용하는 우선순위 순서와 다릅니다. 예를 들어, ANDOR
만약 aAND(a
아래에 나열된 지원되는 DelphiScript 연산자는 우선순위 순서대로 표시되어 있습니다.
우선순위별로 분류된 연산자
단항 연산자가 가장 높은 우선순위를 갖는다는 점에 유의하십시오.
|
부울 또는 비트별 NOT. |
* |
산술 곱셈. |
|
부동 소수점 나눗셈. |
|
정수 나눗셈. |
|
모듈로(정수 나눗셈의 나머지). |
|
부울 또는 비트 단위 AND. |
|
비트 단위 왼쪽 시프트. |
|
비트 단위 우측 시프트. |
|
산술 덧셈, 문자열 연결. |
- |
산술 뺄셈. |
|
부울 또는 비트별 OR |
|
부울 OR 또는 비트별 배타적 OR. |
|
동일한지 여부를 테스트합니다. |
|
불일치 여부를 확인합니다. |
보다 작은지 여부를 확인합니다. |
|
|
보다 큰지 여부를 확인합니다. |
|
작거나 같는지 여부를 확인합니다. |
|
‘보다 크거나 같음’인지 여부를 확인합니다. |
또한 ^@