当前位置:首页 > 技能相关 > PowerBuilder > 正文内容

PowerScript 语句二

admin3年前 (2022-02-17)PowerBuilder3990 修订时间:2022-02-17 09:42:31

一、CHOOSE CASE 

CHOOSE CASE 控件结构根据测试值决定程序执行方向,它是一个条件多分支结构。CHOOSE CASE 的语法格式为:

CHOOSE CASE testexpression 
CASE expressionlist 
statement 
[CASE expressionlist 
... ] 
[CASE ELSE 
statement] 
END CHOOSE

testexpression 代表测试值,不同的测试值引发不同的语句的执行。

expressionlist 代表判断表达式,它可用以下几种形式:

用逗号分隔的数据,例如:2,3,4 

用 TO 表示一个区间,例如:1 TO 30 

用 IS 代表测试值,并辅以关系操作符,例如:IS>20 ·50· PowerScript 语言·事件·函数(PowerBuilder 9.0 版)

使用以上三种方法的综合,用逗号分隔,例如:2,3,8 TO 10,IS>20 

在 CHOOSE CASE 语句中至少应包括一条 CASE,并且使用 END CHOOSE 作为结尾。PowerBuilder 将逐条查找 CASE,若找到与测试值相匹配的判断表达式时,就执行该 CASE 后的语句,然后转向执行 END CHOOSE 后的第一条语句。如果包含 CASE ELSE,在未发现任何匹配的 CASE 条件时,执行 CASE ELSE后的语句。

下面例子中按照 age 进行分支处理:

CHOOSE CASE age 
CASE IS<18 
ls_str = "儿童" 
CASE 18 TO 40 
ls_str = "成年" 
CASE ELSE 
ls_str = "老年" 
END CHOOSE

二、DO...LOOP 

DO...LOOP 是一个通用循环语句。它包括四种形式:

DO UNTIL ... LOOP 
DO WHILE ... LOOP 
DO ... LOOP UNTIL 
DO ... LOOP WHILE

1.DO UNTIL ... LOOP 

DO UNTIL ... LOOP 的语法格式为:

DO UNTIL condition 
 Statements 
LOOP

其中 condition 代表循环进行的条件,statements 表示循环执行的语句。

DO UNTIL 语句执行循环体的语句直到 UNTIL 后标明的条件表达式结果为 TRUE,如果在第一次循环时该计算表达式的结果即为 TRUE,循环体中的语句将不会被执行。

2.DO WHILE ... LOOP 

DO WHILE ... LOOP 的语法格式为:

DO WHILE condition 
 statements 
LOOP

其中 condition 代表循环进行的条件,statements 表示循环执行的语句。

DO WHILE 语句在 WHILE 后的表达式结果为 TRUE 时,执行循环体中的语句。如果第一次对表达式求值的结果即为 FALSE,则循环体中的语句不会被执行。

3.DO ... LOOP UNTIL 

DO ... LOOP UNTIL 的语法格式为:

DO 
 statements 
LOOP UNTIL condition

其中 condition 代表循环进行的条件,statements 表示循环执行的语句。LOOP UNTIL语句在UNTIL后的表达式结果为FALSE时执行循环体中的语句,直到表达式结果为TRUE时结束,但循环体中的语句至少会被执行一次。

4.DO ... LOOP WHILE 

DO ... LOOP WHILE 的语法格式为:

DO 
 statements 
LOOP WHILE condition

其中 condition 代表循环进行的条件,statements 表示循环执行的语句。

LOOP WHILE 语句当 WHILE 后条件表达式结果为 TRUE 时,执行循环体中的语句,如果表达式计算结果为 FALSE,循环结束,但至少会被执行一次。

在下例中,将反复执行 Beep 函数 15 次:

integer a = 1 
DO WHILE a <= 15 
 Beep(1) 
 a++ 
LOOP

三、FOR...NEXT 

FOR...NEXT 是一个计数循环体。使用该语句可以使循环体中的语句被执行规定的次数。该语句的语法格式为:

FOR varname = start TO end [STEP increment] 
statements 
NEXT

其中,varname 代表循环变量;start,end 分别为初值和终值;increment 为步长增量,默认值为+1。如果 start 和 end 在循环体中被改变,它们将影响到循环的次数。如果需要使用变步长增量,应该使用DO LOOP 语句。

在使用 FOR NEXT 语句时需要注意 varname 是 integer 型;end 的取值不能过大,否则,超出 integer 的取值范围,就会造成溢出错误。

例如,对一个多维数组赋值可以使用嵌套 FOR...NEXT 语句:

integer li_arr[10,20] 
FOR i=1 TO 10 
 FOR j=1 TO 20 
 li_arr[i,j] = i * j 
 NEXT 
NEXT

四、IF...THEN 

IF...THEN 语句是一种选择分支结构。它有单行和多行两种格式。

1.单行 IF...THEN 语句

单行 IF...THEN 语句的语法格式为:

IF condition THEN action1 [ELSE action2]

其中 condition 是一条件表达式,action1 和 action2 是处理语句。

如果 condition 结果为 TRUE,action1 将被执行,否则 action2 将被执行,例如:

IF sle_code.Text="010" THEN & 
MessageBox("Hello","010")

2.多行 IF...THEN 语句

多行 IF...THEN 语句的语法格式为:

IF condition1 THEN 
 action1 
[ELSEIF condition2 THEN 
 action2 
 ... ] 
[ELSE 
action3] 
END IF

其中 condition1 和 condition2 是条件表达式,action1,action2 和 action3 是一条或多条语句。

本语句的执行过程为:计算条件表达式 condition1 的结果,如果为 TRUE,则执行 action1,然后略过在它后面在 END IF 之前的语句,离开 IF...THEN 语句;如果 condition1 的结果为 FALSE,则计算条件表达式condition2 的结果,如果为 TRUE,则执行 action2,然后略过在它后面在 END IF 之前的语句,离开 IF...THEN语句;如果条件表达式结果都为 FALSE,并存在 ELSE 子句,则 action3 会被执行。例如,当 li_c 等于 1时,蜂鸣一次,当 li_c 等于 2 时,蜂鸣两次,否则蜂鸣三次,语句如下:

IF li_c=1 THEN 
 Beep(1) 
ELSEIF li_c=2 THEN 
 Beep(2) 
ELSE 
 Beep(3) 
END IF


 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=46

分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。