找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

6195

积分

0

好友

780

主题
发表于 3 天前 | 查看: 2| 回复: 0

本篇主要内容如下:

  • 语句
  • 复合语句(块)
  • 布尔表达式
  • 布尔运算符

“控制流”(Flow of Control)是计算机科学中一个耳熟能详的术语,它指的是程序中语句的执行顺序。在此之前,我们只接触过“顺序控制流”。简单来说,顺序控制流就是每条语句从第一条开始到最后一条结束,依次且仅执行一次。这种模式固然简单明了,但仅靠它无法实现复杂的程序逻辑。

为了丰富程序的执行逻辑,Pascal 语言提供了一系列控制结构。这些特殊构造允许程序以非顺序的方式执行语句。Pascal 中的控制结构主要分为三类:条件结构、循环结构和分支结构(Case)。

在讲解这些结构的含义及用法之前,我们需要先掌握一些基础知识:语句和布尔表达式。

语句

Lazarus 实战入门(15):块语句(Block Statements)

语句是 Pascal 程序执行的基本单元。在最基础的层面上,语句分为两种:过程调用和赋值语句。

此前我们已经接触过内置过程(如 WriteLn)。所谓过程调用,就是使用这些过程的动作,例如:

WriteLn('The sum is ', 0);

赋值语句用于将某个值赋给变量,其格式为:

<变量> := <表达式>;

其中,“表达式”会计算出一个与变量数据类型相匹配的值。例如,若变量 Score 和 Maximum 均为整数类型(Integer),则以下赋值语句都是合法的:

Score := 10;
Maximum := 32 * Score div 17;
Score := Score + 10;
Maximum := Succ(Maximum);

复合语句(块)

除了一个特例之外,我们即将学习的所有控制结构默认都只执行一条语句。听起来这似乎很不方便——如果只能写一句过程调用或一句赋值,那限制也太大了。但实际上并非如此。Pascal 允许将多条语句组合成一个整体,视为“单条语句”来处理:

begin
  <语句1>;
  <语句2>;
  ...
  <语句n>
end;

这种结构被称为块(Block)或复合语句(Compound Statement)。在任何可以使用简单语句的地方,都可以使用复合语句;甚至可以在一个复合语句内部嵌套另一个复合语句。正如你稍后将看到的,复合语句最常与控制结构配合使用。

布尔表达式

布尔表达式返回的是布尔值,即 True(真)或 False(假)。

假设整数变量 Score 和 Maximum 已被赋值,例如 Score = 10 且 Maximum = 0。我们可以构建如下布尔表达式,其结果如下表所示:

表达式 结果 含义
Score > Maximum True 大于
Score = Maximum False 等于
Score < Maximum False 小于
Score >= Maximum True 大于或等于
Score <= Maximum False 小于或等于
Score <> Maximum True 不等于

在 Pascal 程序中,上述表达式的计算结果确实是预定义布尔类型(Boolean)的两个值之一:True 或 False。我们可以定义一个布尔变量 NewMax,然后进行如下赋值:

NewMax := (Score > Maximum);

根据 Score 和 Maximum 的当前值,NewMax 会被赋值为 True 或 False。以上述数值为例,NewMax 的值将为 True。

布尔运算符

通过使用布尔运算符 and、xor、or 和 not,可以构建更复杂的表达式。

  • not:取反运算,将 True 变为 False,反之亦然。
  • and、xor、or:用于组合两个表达式,生成一个新的布尔表达式。

利用这些运算符,可以写出如下表达式:

(Score > Maximum) or (Score > 30000)
(Score > 10000) and (Score <= 20000)
not (NewMax or (Maximum = 0))

假设 Score、Maximum 和 NewMax 的值如上所述(分别为 10、0 和 True),那么第一个表达式的结果为 True,而后两个表达式的结果均为 False。

掌握了以上基础知识,我们可以正式进入控制结构的学习了。




上一篇:动力系统移位嵌入问题获统一解决,Invent Math 最新刊发
下一篇:SparkDiffusion开源:单卡RTX 5090视频生成加速265倍破解高稀疏陷阱
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-10-3 01:37 , Processed in 0.757393 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表