本文摘要
先分享一个好消息,从2024年10月发布的HighScore 5.3版本开始,脚本功能将扩展到无Plus功能的HIghScore软件版本,因此从本篇文章开始本系列更名为《HighScore脚本入门》。
在本系列的第一篇文章中介绍了HighScore Plus 软件的脚本支持功能,并展开说明了脚本语言的程序结构和数据类型及常规的赋值和运算语句。本篇我们来说一说脚本程序代码中的流程控制。
流程控制 条件语句
程序执行中,有时候需要判断某个条件是否满足,根据判断结果实施不同的操作,这就需要条件语句来实现。Pascal语言中条件语句主要有if语句和case语句。
if 语句的最基础格式如下:
if 判断条件 then 满足条件的处理语句;

图1. if...then 语句
if...then 语句后面可以跟一个可选的 else 语句,格式如下,注意,此时 then 后的语句不能加分号,因为 if 语句还没结束。
if 判断条件 then 满足条件的处理语句 else 不满足条件的处理语句;

图2. if…then…else语句
then 和 else 后面的处理语句中可以再嵌套 if语句,特别是 else 后面,可以形成 if…then…else if…then…else if…then…else的多支路语句。但一定要小心使用嵌套!有可能程序运行结果不是你所预期的那样。

图3. if…then…else if…then…else if…then……else多支路语句
当支路越来越多时,用嵌套的 if 语句就显得太繁琐。如果多支路的选择是由同一个变量或表达式的不同结果值所决定的,其实也可以用 case 语句来实现,而且更显简洁、清晰。如图3的例子,用 case 语句可以改写成:

图4. case多支路语句
流程控制 循环语句
程序执行中,需要多次规律性的重复处理时,特别是一些数组的运算处理时,就需要用到循环语句。Pascal 语言中循环语句主要有while…do 语句、repeat…until 语句和 for…do 语句。
while…do 语句的基础格式如下:
while 判断条件 do 循环体语句;
每轮循环之前,都先进行条件判断,当判断条件满足时,则执行循环体;当判断条件不满足,则结束循环。循环体可以是单个语句,也可以是由 begin 和 end;包含起来的程序块,但其语句中一定要包含有能改变判断条件控制变量的语句,能使判断条件不满足,以免形成死循环。

图5. while…do循环语句
与 while…do 语句相反,repeat…until 语句是先执行循环体,然后再看判断条件是否满足,如果满足则结束循环,所以循环体至少会被执行一次。循环体可以是单个语句,也可以由多个语句组成,但不必用 begin 和 end;包含起来,repeat 和 until 本身具备包含程序块的功能。其基础格式如下:
repeat 循环体语句 until 判断条件;

图6. repeat…until循环语句
while…do 语句和 repeat…until 语句中循环次数不定,根据某一条件来决定是否继续循环,如果要进行固定次数的循环,可以用 for…do 语句:
for 计次变量:=初始值 to 终止值 do 循环体;
for 计次变量:=初始值 downto 终止值 do 循环体;
其中,计次变量一般为整数类型(也可以是字符类型);第一轮循环时,计次变量被赋予初始值,此后每轮循环计次变量都会递增(to 关键字)或递减(downto 关键字)1;如果计次变量没超过终止值,则执行循环体,否则结束循环。
循环体内还可以用 continue 和 break 这两个关键字对循环做额外的控制,上述的三种循环语句内都可使用,一般配合条件语句决定什么情况下要 continue 或 break;continue 起效时,在该轮次循环内,循环体里在其后的语句将不再执行,而是立即进行下一轮次循环是否进行的条件判断;break 则直接就此结束循环;它们的影响范围只在它们所处的那一层级的循环语句。

图7. for…do循环语句
for…do 语句还有一种特殊形式的for…in…do 循环,本文不再赘述,感兴趣的可以移步Free Pascal wiki了解。
较为复杂的运算,可能会用到循环语句的嵌套,Pascal语言中允许任何类型的循环语句嵌套于任何类型的循环语句内。

图8. 循环语句嵌套

2236
0- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 【助力科研】粉末挤出3D打印破解多材料梯度惰性阳极烧结开裂难题,推动无碳铝电解发展
- 粉末挤出3D打印制备难熔金属和先进陶瓷发展趋势
- 顶刊速递|为什么温敏水凝胶的研究进展值得关注?
- 声共振机械合金化 制备Ni-Al反应材料的可行性研究与机理探讨
- 突破肽类高浓度制剂瓶颈 声共振技术实现稳定纳米悬浮
- 常驻顶刊!为何磁性纳米粒子的研究如此“高产”?
- 日本石川擂溃机化学工业实验用装置的高效选择
- 为什么COFs的催化应用近期顶刊不断?
- 从“作用”到“场域”:粉碎技术的范式演进与柯立微能量场理论的构建
- 大明化学氧化铝粉在低温烧结制粉中的应用
- Development, Characterization, and Molecular Dynamics Simulation of Andrographolide Nanosuspensions Utilizing Hummer Acoustic Resonance Technology
- 苏州碳丰科技首席科学家程金生老师以本公司名义在国际上发表关于石墨烯纤维的论文《石墨烯纤维纳米复合材料的合成及氨基酸检测的分析应用》:
- 介可视·散装物料库存管理雷达全景扫描系统在料仓、堆场中的应用
- 磷酸化修饰鬼臼果多糖的制备及生物活性
- DSR论文解读:Advanced Science News 报道中科院长春应化所新型非铂催化材料研究成果
- High-throughput preparation, scale up and solidification of andrographolide nanosuspension using hummer acoustic resonance technology(纳米混悬剂制备的前瞻性技术 - 蜂鸟声共振)

