两个指针指向同一个动态变量,则两个指针变量相等,否则即为不等。
1.4.3 语句
在程序中,表示算法的是一系列
语句。Pascal语句分为两类:简单语句和构造语句。简单语句是指不包括其他语句的语句,构造语句由简单语句按照一定的规则构造而成。
1. 简单语句
(1)赋值语句
形式:
变量 := 表达式
赋值符号为“: =”。不论给属性还是给变量赋值,都是将右边的值赋给左边的属性或变量。
当将一个属性值、变量、常量或文本数据赋给属性或变量时,所赋值的类型和接受此值的属性或变量的类型应相同或兼容。一个属性或变量的类型定义了此属性或变量的可能值集合,也定义了
程序代码可以执行的运算。
(2)复合语句
复合语句是用begin和end括起来的一个语句序列,语句与语句之间用分号隔开。
begin与end要配对使用。begin与end之间括起来的是一个语句整体。在if语句、case语句、with语句、for语句、while语句中的语句部分,使用了一个以上的语句时,都要使用复合语句,以确定这是一个语句整体。
(3)转移语句
转移语句用于改变程序的动态执行顺序,控制程序转到指定位置继续执行,该指定位置由标号表明。
标号为一个语句的前缀,中间用冒号隔开,作用是标记程序的位置。其格式为:
标号:语句
标号必须预先在标号说明部分声明。标号声明的一般形式为:
label 标号;
转移语句的格式为:
goto 标号;
其中goto为保留字,表示使程序转移到标号处,从标号所标记的语句开始,继续执行。为了使程序结构紧凑,思路清晰,程序
设计中不提倡使用转移语句。
2. 控制语句
(1)选择性语句
选择性语句包括if语句和case语句,分别用来构成双分支选择结构语句和多分支选择结构语句。
1)if语句
if语句有两种格式。
格式1:
if条件 then 执行一段程序
格式2:
if 条件 then 执行一段程序
else 执行另一段程序
其中,“执行一段程序”和“执行另一段程序”部分还可以嵌套if语句。
if语句会计算一个表达式,并根据计算结果决定程序流程。if保留字后跟随一个生成布尔值True或False的表达式。一般用“=”,“>”,“<”等作为关系运算符,比较的结果会产生一个布尔型值。当表达式为True时,执行then后的语句,否则执行else后的语句。if语句也可以不含else部分,表达式为False时自动跳到下一行程序。
if语句可以嵌套。当使用复合语句表达时,复合语句前后需加上begin和end。else保留字前不能加“;”,而且,编译器会将else语句视为属于最靠近的if语句。必要时,须使用begin和end保留字来强迫else部分属于某一级的if语句。
应尽量避免使用嵌套的if语句,在不得不使用的情况下应该用多个if语句来判断各种可能。不要使
用超过5层的if语句嵌套,应使代码编写得更加清晰明了。
在if/then/else语句中,最常发生的行为应放在then子句中,而其他可能性较小的行为应放在else子句中。
如果在if语句中有多个条件需测试,这些条件应按计算强度由少到多的顺序从左到右排列。这样做能使编译器在编译代码时获得布尔估算逻辑的捷径,从而使代码获得最佳的优化。
2)case语句
case语句也叫做情况语句,它针对多种情况产生多条分支。case语句适用于被判断的变量或属性是整型、字符型、枚举型或子界型时。
在一个case语句中的各个独立的单元应以数字或字母顺序排列。每一个case单元的动作行为应保持简单而不应该超过4~5行代码。如果所要执行的动作过于复杂,应采用独立的过程或函数。
case语句中的else子句只有当需要
系统默认行为或处理错误时才使用。
case语句格式如下:
case 表达式 of
情况标号表1:情况子句1;
情况标号表2:情况子句2;
M
情况标号表n:情况子句n;
end
(2)重复性语句
1)repeat语句
repeat语句也称为直到语句。