PB基础语句文档格式.docx
《PB基础语句文档格式.docx》由会员分享,可在线阅读,更多相关《PB基础语句文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
单行IF...THEN语句的格式为:
IF逻辑表达式THEN语句1[ELSE语句2]
单行IF...THEN语句书写时整条语句写在一行上,当逻辑表达式的结果为True时执行语句1,否则执行语句2(如果有该子句的话)。
例如:
IFsle_State.text="
BJ"
THEN
MessageBox("
欢迎"
"
)
2.多行IF...THEN语句
多行IF...THEN语句的语法格式为:
IF逻辑表达式1THEN
语句1
[ELSEIF逻辑表达式2THEN
语句2
...
][ELSE
语句n]
ENDIF
本语句的执行过程为:
计算逻辑表达式1,如果其结果为True,则执行语句1,然后离开整个IF语句;
否则计算逻辑表达式2,如果其结果为True,则执行语句2,然后离开整个IF语句;
...如果逻辑表达式的结果都是False,且存在ELSE子句,则执行语句3。
例1:
从单行编辑框中输入考分,按“输入”按钮再根据考分显示及格或不及格。
Integers
s=integer(sle_1.text)
//sle_1text单行编辑框文本
Ifs<
60then
St_1.text=“不及格”
//St_1.text静态编辑框文本
Else
St_1.text=“及格”
Endif
例2:
从单行编辑框中输入考分,按“输入”按钮后,再根据考分显示优、良、中、及格或不及格。
ifs>
=90then
St_1.text=“优”
elseifs>
=80then
St_1.text=“良”
=70then
St_1.text=“中”
=60then
else
St_1.text=“不及格”
endif
3.CHOOSECASE语句
根据测试表达式的值选择不同的操作,其语法格式为:
CHOOSECASE测试表达式
CASE判断表达式
执行语句块
[CASE判断表达式
语句块
...
语句块]
[CASEELSE
ENDCHOOSE
判断表达式可以使用如下的形式:
1.用逗号分隔的一组数据,例如:
2,4,7
2.用TO表示一个区间范围,例如:
2TO15
3.用IS代表测试值,后跟关系操作符和比较值,例如:
IS>
30
4.组合运用上述三种方法,并用逗号进行分隔,例如:
5,6,8TO12,IS>
20
执行CHOOSECASE语句时,PowerBuilder将逐条查找CASE,如果找到与测试值相匹配的判断表达式,就执行该CASE后的语句块,然后执行ENDCHOOSE后的第一条语句。
如果CHOOSECASE语句中包含CASEELSE子句,则未找到任何匹配的CASE条件时,执行CASEELSE子句中的语句块。
例3:
从单行编辑框中输入考分,按“输入”按钮后,再根据考分显示优、良、种、及格或不及格。
(用choosecase重写例2)
integerf
Strings
f=integer(sle_1.text)
CHOOSECASEf
CASEIS>
=90
//改进90to100
S="
优"
CASE80TO89
S="
良"
CASE70TO79
中"
CASE60TO69
及格"
CASE0TO59
不及格"
CASEELSE
输入错,请重新输入!
"
St_1.text=string(S)
三、循环语句
各种语言都提供了自己的循环语句,PowerScript也不例外,它的循环语句有三种形式:
DO…LOOP、FOR…NEXT、GOTO,将前两种形式与EXIT和CONTINUE语句配合使用,可以完全抛弃GOTO语句,而且DO…LOOP本身有四种格式,丰富多采的表达方式为我们编写清晰流畅的程序提供了有效手段。
下面介绍PowerScript循环语句的格式、中途退出循环或中途开始下次循环的方法、以及循环嵌套的概念。
1DOLOOP循环
DOLOOP结构提供了一种基于某个条件的灵活的循环方法,它有四种形式,分别为:
DOUNTILu<
条件>
…LOOP
DOWHILEu<
…LOOP(类似c)
DO…LOOPUNTILu<
uDO…LOOPWHILE<
(类似c)
DO表示循环的开始,LOOP表示循环的结束,condition表示循环条件,是个逻辑表达式,其值为True或False。
(1)DOUNTIL…LOOP的语法格式为:
DOUNTIL<
语句块
LOOP
其执行过程为:
先计算条件condition,其结果为False时,执行语句块,接着再检查条件,直到条件的结果为True时退出循环。
例:
按计算按钮求s=1+2+3+…+10。
解1:
integeri=1,s=0
DOUNTILi>
10
s+=i
i++
st_1.text=string(s)
(2)DOWHILE…LOOP的语法格式为:
DOWHILE<
先计算条件,其结果为True时,执行语句块,接着再检查条件,直到条件的结果为False时退出循环。
解2:
DOWHILEi<
=10
(3)DO…LOOPUNTIL的语法格式为:
DO
LOOPUNTIL<
先执行语句块,然后计算条件,如果其结果为False,则继续执行语句块,直到条件的结果为True时退出循环。
解3:
解1与解3完全等价
DO
LOOPUNTILi>
(4)DO…LOOPWHILE的语法格式为:
LOOPWHILE<
先执行语句块,然后计算条件,如果其结果为True,则继续执行语句块,直到条件的结果为False时退出循环。
解4:
解2与解4完全等价
DO
LOOPWHILEi<
这四种循环结构中,前两种结构可以一次也不执行,后两种结构则至少执行一次。
实际上,只需要从前两种和后两种结构中各取其一就能表达所有的逻辑关系,但为了更清晰地表达条件,PowerScript还是提供了四种结构。
2FORNEXT循环
FOR…NEXT是个循环次数确定的循环结构,它使循环体内的语句执行规定的次数,其语法结构为:
FORvarname=startTOend[STEPincrement]
Statementblock
NEXT
其中,varname是循环变量,可以是任意的数值类型,start、end分别是循环变量的初值和终值,increment是每次循环后循环变量的步长增量(缺省值为1),statementblock是一组语句,称做循环体,方括号表示该子句可以省略。
FOR…NEXT语句的执行过程为:
循环变量varname从start开始,到end为止,重复执行循环体,每执行一次,varname被重新赋值,新值为:
varname+increment。
另外,如果start和/或end在循环体内被修改,将影响循环次数。
解5:
integeri,s=0
fori=1to10
next
3EXIT(退出循环)
在循环语句的循环体中,当我们想在中途退出循环时,使用EXIT语句是个好办法,执行该语句后,程序的控制权转至循环语句后的语句,执行该语句后,程序的控制权转至循环语句后的语句。
在嵌套循环的情况下,EXIT语句退出当前层循环,而不是所有循环。
功能:
执行该语句后,程序的控制权转至循环语句后的语句。
下列程序运行后,变量s中的值是多少?
integeri,j,s=0
forj=1to10
ifj>
6then
exit
endif
next
s=s+i
4CONTINUE(继续循环)
在循环语句的循环体中,遇到CONTINUE语句后,将不执行CONTINUE语句后与循环结束前的所有语句,而开始新一轮循环。
四、返回语句与终止程序运行
在编写事件处理程序或函数时,使用RETURN语句返回控制给用户或调用函数的地方。
当希望终止应用程序的运行时,使用HALT语句。
1RETURN语句
RETURN语句立即终止事件处理程序或函数的执行,把控制返回到调用程序。
语法格式:
RETURN[表达式]
表达式值作为事件处理程序或函数的返回值返回。
2HALT语句
HALT语句用于终止应用程序的运行,其语法为:
HALT{CLOSE}
其中CLOSE是个可选项。
当HALT语句不带CLOSE选项时,该语句立即终止应用程序的运行;
当HALT语句带CLOSE选项时,执行到该语句后,应用程序先执行应用对象的Close事件处理程序,之后再终止应用程序的运行。
OpenWithParm()
功能
带参数打开窗口,与打开窗口的Open()函数相似,OpenWithParm()有两种语法格式:
语法一、带参数打开编程时已知数据类型的窗口对象;
语法二、带参数打开程序运行后才能确定数据类型的窗口对象。
下面分别予以介绍:
语法一、带参数打开编程时已知数据类型的窗口对象语法
OpenWithParm(windowvar,parameter{,parent})
参数windowvar:
要打开窗口的窗口名,可以使用窗口画笔定义的窗口对象名,也可以使用该窗口对象的某个变量。
Open()函数把打开窗口的引用放置到windowvar变量中
parameter:
指定要传递给打开窗口的数据,该数据保存在Message对象的属性中,parameter参数的数据类型必须是下述三种类型之一:
String、Numeric、PowerObjectparent:
可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。
如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。
函数执行成功时返回1,发生错误时返回-1。
如果任何参数的值为NULL,OpenWithParm()函数返回NULL。
用法消息对象Message有三个属性用于存储OpenWithParm()函数传递给打开窗口的数据。
根据parameter参数数据类型的不同,该参数的值保存在Message对象的不同属性中。
parameter参数的类型与使用的Message对象属性的对应关系为:
parameter参数的类型
使用的Message对象属性
数值类型
Message.DoubleParm
PowerObject(比如结构)Message.PowerObjectParm
字符串类型
Message.StringParm
应用程序根据OpenWithParm()函数parameter参数的数据类型,从Message对象的不同属性中提取该函数传送给被打开窗口的值。
语法二、带参数打开程序运行后才能确定数据类型的窗口对象
语法
OpenWithParm(windowvar,parameter,windowtype{,parent})
参数
windowvar:
指定窗口变量名,Open()函数把打开窗口的引用放置到该变量中parameter:
String、Numeric、PowerObjectwindowtype:
string类型,指定要打开窗口的数据类型,该参数指定的窗口数据类型必须与windowvar参数的类型相同或是windowvar类型的后继对象
parent:
如果
应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口
返回值
Integer。
示例1.
下面的代码从表中选择要打开窗口的类型,然后打开该窗口,并把单行编辑框sle_location的内容放置在消息对象的Message.StringParm属性中:
window
w_to_open
string
s_w_name,
e_location
e_location
=
sle_location.Text
SELECT
next_window
INTO
:
s_w_nameFROM
routing_tableWHERE
...
;
OpenWithParm(w_to_open,
e_location,
s_w_name)