跳转到内容

Delphi 编程/流程控制

来自维基教科书,自由的教科书

if 结构

[编辑 | 编辑源代码]

如果布尔表达式返回 True,则 if 结构将执行命令块。更易于理解的解释是:如果条件为真,它将执行一个块或单个命令。示例

 begin
   if a = False then
     WriteLn('a is false')
   else WriteLn('a is true');
 end.

不要写 "if a = True",只需写 "if a"。写 "if a = False" 是正确的,但你也可以写 "if not a" 或(带括号)"if (((((a)))))"(或你想要的任意数量的括号),还有 "(if (not(a)))"。

结构

 begin
   if CONDITION then
     DO_ANYTHING
   else DO_THIS;
 end.

或(用于执行多个命令)

 begin
   if CONDITION then
   begin
     DO_ANYTHING;
   end
   else begin
     DO_THIS;
   end;
 end.

或不带 else

 begin
   if CONDITION then
   begin
     DO_THIS;
   end;
 end.

除了最后一个 end 之外,end 后面总是有分号。else 前面永远不会有分号!

示例

 var
   _Answer: string;
 begin
   WriteLn('Do you want to order a pizza?');
   ReadLn(_Answer);
   if _Answer = 'Yes' then
     WriteLn('You decided for yes!')
   else WriteLn('Don''t want to have a pizza?');
 end.

你可以用单引号 (') 或双引号 (") 开始和结束字符串。如何在字符串中写单引号或双引号?它将在中间结束字符串!如果你必须在文本中写单引号,你可以用双引号开始和结束字符串,或者像第 8 行那样将单引号写两次。对双引号做同样的事情。

case 结构

[编辑 | 编辑源代码]

Case 结构与 if 结构非常相似,但有以下区别:你可以更轻松地询问多个 case!

结构

 case VARIABLE_NAME of
   VALUE_1:
     DO_THIS;
   VALUE_N:
     DO_THIS
   else
     DO_THIS
   end;
 end;

但使用 case 结构,你只能询问整数和字符。

运算符

[编辑 | 编辑源代码]

扩展条件

[编辑 | 编辑源代码]

你可以使用几个运算符扩展你的条件

  • AND(如 C 中的 &&):逻辑 'and':if (a = 1) and (b = 2)。表达式 "(a = 1) and (b = 2)" 的值为 TRUE,如果 a 为 1 且 b 为 2。否则,值为 FALSE,并将执行 ELSE 部分(而不是 THEN 后的部分)。不要忘记括号!
  • OR(如 C 中的 ||):'or':if (a = 1) or (b = 1)。如果 a 为 1,b 为 1 或两者都为 1,则表达式的值为 TRUE。
  • XOR:如果只有一个条件为真:if (a = 1) xor (b = 2)。如果 a 为 1 或 b 为 2,则表达式为真。如果 a 为 1 且 b 为 2,则值为 **FALSE**!
  • NOT:表达式的反义。

也可以将这些运算符相互关联。但不要忘记括号!

顺便说一下:每个条件都会返回一个布尔值。如果为 TRUE,则执行 then 部分。如果不是,则处理器转到 else 部分。

诸如 '等于' 的运算符

[编辑 | 编辑源代码]

诸如 '=' 的运算符是

  • = 等于
  • > 大于
  • < 小于
  • <= 小于等于
  • >= 大于等于
  • <> 不等于(小于或大于,不相同)

and 连接或 disjunction xor 排他性 disjunction

用于计算的运算符

[编辑 | 编辑源代码]
  • 你可以使用 ( 和 ) 作为括号。
  • / 表示 '除以',结果为浮点数
  • div 表示 '除以',结果为四舍五入的整数
  • * 表示 '乘'
  • + 表示 '加'
  • - 表示 '减'

+ 也表示连接字符串或字符

  • string + string : string
  • string + char : string
  • char + char : string
  • char + string : string
  • string + number : 错误
  • number + string : 错误
  • number + number : number
  • number + char : 错误
  • char + number : 错误

循环表示:一个块将被执行多次。有四种类型的循环

 for [var] := [start] to [end] do
 begin
   [execute the following code]
 end;

var 将从 [start] 计数到 [end],并且在每次计数步骤后都会执行代码。通常,[var] 被定义为 i、j 或 k,但你也可以选择counting_var_with_this_name或任何名称。

For-downto

[编辑 | 编辑源代码]
 for [var] := [end] downto [start] do
 begin
   [execute the following code]
 end;

var 将从 [end] **向下** 计数到 [start],并且在每次计数步骤后都会执行代码。

 while [condition] do
 begin
   [code]
 end;

只要条件为真,代码就会被执行。条件是 TRUE 还是 FALSE 将在执行代码 **之前** 检查。

Repeat-until

[编辑 | 编辑源代码]
 repeat
   [code]
 until [condition];

代码将被执行,直到条件为真。条件是 TRUE 还是 FALSE 将在执行代码 **之后** 检查。

设置值

[编辑 | 编辑源代码]

设置值的运算符是:=

 a := b;

通过执行,a 将获得 b 的值。

示例

a 等于 1;b 等于 3

执行后

a 等于 3;b 等于 3

而不是

a 等于 1;b 等于 1


注意顺序!

华夏公益教科书