语句和运算符
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 Condition Then
Begin
// code here
End
Else
Begin
// code here
End;
语句的情况
为避免复杂的 IfCase
由于 DelphiScript 是一种无类型语言,因此任何类型都可用于 Case 语句。Case 语句可以包含一个 Else 语句,如果没有任何标签与选择器的值(在 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
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..To..Do
For counter := start To end Do
Begin
// code here
End;
ForFor..To..DoDownToFor..To..Do
重复循环
该 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;
继续语句
继续语句 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;
退出语句
退出语句 ExitExitTry..FinallyFinallyExit
Begin
Server := SchServer;
If Server = Nil Then
Begin
ShowError('No SchServer started');
Exit;
End;
中断语句
该 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 拥有大量逻辑、算术、布尔和关系运算符。这些运算符按优先顺序分组(见下文),与 Basic、C 等语言使用的优先顺序不同。例如 ANDOR
如果您写 aAND(a
下面列出的 DelphiScript 支持的操作符按优先顺序排列。
按优先级分组的操作符
请注意,一元运算符具有最高优先级。
|
布尔运算或位运算 NOT。 |
* |
算术乘法。 |
|
浮点除法 |
|
整数除法 |
|
模(整数除法的余数)。 |
|
布尔运算或位与运算。 |
|
比特左移 |
|
位向右移动 |
|
算术加法,字符串连接。 |
- |
算术减法 |
|
布尔或位运算 OR |
|
布尔运算或位运算 EXCLUSIVE OR。 |
|
测试是否相等。 |
|
测试是否不相等。 |
测试是否小于 |
|
|
测试是否大于 |
|
测试是否小于或等于。 |
|
测试是否大于或等于。 |
还要注意 ^@