Câu lệnh và toán tử
Các câu lệnh trong DelphiScript
Một câu lệnh trong DelphiScript được coi là 'đơn giản' khi nó không chứa bất kỳ câu lệnh nào khác. Ví dụ về các câu lệnh đơn giản là câu lệnh gán và câu lệnh gọi thủ tục.
X := Y + 10; // assignment ShowMessage('Hello World!'); // procedure call
Một câu lệnh ghép bao gồm nhiều câu lệnh.
Begin If A > B Then ShowMessage('A is bigger'); Else ShowMessage('B is bigger'); A := 0; B := 0; End;
Câu lệnh điều kiện
DelphiScript có các câu lệnh điều khiển ảnh hưởng đến luồng thực thi trong một kịch bản. Câu lệnh điều khiển phổ biến nhất là If..Then
Câu lệnh If Then
Câu lệnh If..Then
If Condition Then Begin // code here End Else Begin // code here End;
Câu lệnh Case Of
Để tránh một tập hợp phức tạp các IfCase
Bất kỳ kiểu dữ liệu nào cũng có thể được sử dụng trong câu lệnh Case vì DelphiScript là một ngôn ngữ không phân biệt kiểu. Câu lệnh Case có thể có một câu lệnh Else được thực thi nếu không có nhãn nào tương ứng với giá trị của bộ chọn (trong điều kiện Case Of).
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;
Câu lệnh With
Câu lệnh With
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
Vòng lặp For To Do
Câu For..To..Do
For counter := start To end Do Begin // code here End;
ForFor..To..DoDownToFor..To..Do
Vòng lặp Repeat Until
Câu lệnh RepeatRepeat
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
Vòng lặp While Do
Câu WhileRepeat
Randomize; I := 0; While I 1000 do Begin I := I + Random (100); Add ('Random Number: ' + IntToStr (I)); End;
Câu lệnh Continue
Lệnh 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;
Câu lệnh Goto Label
Câu lệnh GotoGoto labellabel: statement
Một nhãn có thể là bất kỳ định danh hợp lệ nào. Việc khai báo nhãn và Goto
Label StartHere; // code StartHere: Beep; Goto StartHere;
Câu lệnh Exit
Câu lệnh ExitExitTry..FinallyFinallyExit
Begin Server := SchServer; If Server = Nil Then Begin ShowError('No SchServer started'); Exit; End;
Lệnh Break
Lệnh 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;
Các toán tử biểu thức trong DelphiScript
Nói chung, một biểu thức là sự kết hợp hợp lệ giữa các hằng số, biến, giá trị nguyên văn, toán tử và kết quả hàm. Biểu thức được sử dụng để xác định giá trị gán cho một biến, tính toán tham số của một hàm hoặc kiểm tra một điều kiện. Biểu thức có thể bao gồm các lệnh gọi hàm.
DelphiScript có một số toán tử logic, số học, Boolean và quan hệ. Các toán tử này được nhóm theo thứ tự ưu tiên (xem bên dưới), khác với thứ tự ưu tiên được sử dụng trong Basic, C, v.v. Ví dụ: ANDOR
Nếu bạn viết aAND(a
Các toán tử DelphiScript được hỗ trợ được liệt kê dưới đây theo thứ tự ưu tiên.
Các toán tử được phân nhóm theo mức độ ưu tiên
Lưu ý rằng các toán tử đơn có mức ưu tiên cao nhất.
|
NOT logic hoặc NOT bitwise. |
* |
Phép nhân số học. |
|
Phép chia số thực. |
|
Phép chia số nguyên. |
|
hàm modulus (phần dư của phép chia số nguyên). |
|
Hoặc logic (AND bitwise). |
|
Dịch trái bit. |
|
Dịch bit sang phải. |
|
Phép cộng số học, nối chuỗi. |
- |
Trừ số học. |
|
Hoặc Boolean hoặc Hoặc bit |
|
Hoặc Boolean hoặc Hoặc loại trừ bitwise. |
|
Kiểm tra xem có bằng nhau hay không. |
|
Kiểm tra xem có khác nhau hay không. |
Kiểm tra xem có nhỏ hơn hay không. |
|
|
Kiểm tra xem có lớn hơn hay không. |
|
Kiểm tra xem có nhỏ hơn hoặc bằng hay không. |
|
Kiểm tra xem có lớn hơn hoặc bằng hay không. |
Cũng lưu ý rằng ^@