| 小火龙果 |
2020-04-26 18:18 |
RP Fiber Power——控制结构
通常,一个脚本是逐行读取和执行的,但是有各种各样的控制结构来影响执行流程。 vkG%w; if 命令允许在满足给定条件的情况下执行其他语句。 $DnR[V}rR! 例子: yB{1&S5C if a < 0 then D)S_ p& show "a is negative!" _,e4?grP# 建议在新的行中开始 then 部分,并使用一些缩进以提高清晰度。此外,还可以添加一 55Mtjqfp 个在条件未满足时执行的 else 部分: D+q z` if a < 0 then ,u-9e4 show "a < 0 !!!" 1C*mR%Q else y;P%=MP show "Ok" G"Ey%Q2K 可以使用 begin 和 end 之间的块,而不是单个命令: E2`9H-6e if a < 0 then %* gg6Q begin /h]ru SI show "Problem: a < 0" 23Q 88z b := 0 vuJEPn% end z|(<Co8#. else Vk[M .=J begin <R_)[{ 7 b := sqrt(a) Bcb
'4*: show "Ok" N6%L4v8-}X end ^L.'At 注意,begin 和 end 应该总是单独出现在一行中。此外,在“then”后面可以有一个命令,也可以没有任何命令,但不只是一个注释。 A2P.5EN 在下文中,我们将“statement”一词用于以下内容之一:- 单一命令
- begin 和end之间的一组命令
- 控制结构
对于“for”语句,可以对给定范围的每个值解释一次以下语句。例子: Q0ba;KPm for x := 1 to 10 do show x, ", ", sin(x):f6 G}}Lp~ 将使用不同的 x 值执行 show 命令。循环命令可以位于同一行(如上所述)或下一行(最好使用缩进以提高可读性,或者在 begin 和 end 之间可以有一个命令块)。 ?@6Zv$vZ 后者的一个例子: S5UQ
y := 0 pXA|'U5] for j := 0 to 10 do Wdj|RKw begin C!6D /S x := sqrt(j) 3&+nV1 y := y + x @zLyG#kHY show x:d3, ", ", y:d3 n5tsaU; end ~Ra8(KocD 还允许按以下方式指定值列表(以“|”分隔): I"Ko sSs for x := 1 | 2 | 5 | 10 do s<3M_mt show x, " ", 10 * lg(x):f1 O+=}x]q*y 如果值的范围为空(例如,for j := 1 to 0),则根本不执行命令或块。 {qCFd 使用“while”可以构造一个循环,在该循环中,只要满足某个条件,命令(或命令块)就会被一次又一次地解释。例子: HoeW6U V j := 1 D)Jac@,0 while j < 5 do .5 {< | |