PB基础语句.docx
- 文档编号:26063417
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:10
- 大小:19.15KB
PB基础语句.docx
《PB基础语句.docx》由会员分享,可在线阅读,更多相关《PB基础语句.docx(10页珍藏版)》请在冰豆网上搜索。
PB基础语句
PB基本语句循环语句
PB基本语句
一、赋值语句
赋值语句用于给变量、对象属性赋值,这是应用程序中使用最频繁的语句,其语法格式为:
variablename=expression
其中:
⑴variablename是变量名或对象属性;
⑵expression是表达式,其数据类型应该与variablename的数据类型兼容。
下面是赋值语句的几个简单示例:
Address="北京"
TaxRate=.05
Age=30
mle.text="北京欢迎你"
PowerScript的赋值语句不支持多重赋值,也就是说,一条赋值语句只对一个变量赋值,不能同时对多个变量赋值。
下面的语句:
A=B=0
在有些编程语言中同时把A和B均赋值0,但PowerScript中,该语句等价于:
A=(B=0)
其意义为,检查B等于0是否成立,成立时将TRUE赋给变量A,否则把FALSE赋给变量A。
如果A不是Boolean类型的变量,则上述语句将引起编译错误。
二、条件语句
IF语句有两种形式,下面我们按照从简单到复杂的次序逐一介绍。
1.单行IF...THEN语句
单行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:
从单行编辑框中输入考分,按“输入”按钮后,再根据考分显示优、良、中、及格或不及格。
Integers
s=integer(sle_1.text) //sle_1text单行编辑框文本
ifs>=90then
St_1.text=“优”
elseifs>=80then
St_1.text=“良”
elseifs>=70then
St_1.text=“中”
elseifs>=60then
St_1.text=“及格”
else
St_1.text=“
不及格”
endif
3.CHOOSECASE语句
根据测试表达式的值选择不同的操作,其语法格式为:
CHOOSECASE测试表达式
CASE判断表达式
执行语句块
[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
S="中"
CASE60TO69
S="及格"
CASE0TO59
S="不及格"
CASEELSE
S="输入错,请重新输入!
"
ENDCHOOSE
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++
LOOP
st_1.text=string(s)
(2)DOWHILE…LOOP的语法格式为:
DOWHILE<条件>
语句块
LOOP
其执行过程为:
先计算条件,其结果为True时,执行语句块,接着再检查条件,直到条件的结果为False时退出循环。
例:
按计算按钮求s=1+2+3+…+10。
解2:
integeri=1,s=0
DOWHILEi<=10
s+=i
i++
LOOP
st_1.text=string(s)
(3)DO…LOOPUNTIL
的语法格式为:
DO
语句块
LOOPUNTIL<条件>
其执行过程为:
先执行语句块,然后计算条件,如果其结果为False,则继续执行语句块,直到条件的结果为True时退出循环。
例:
按计算按钮求s=1+2+3+…+10。
解3:
解1与解3完全等价
integeri=1,s=0
DO
s+=i
i++
LOOPUNTILi>10
st_1.text=string(s)
(4)DO…LOOPWHILE的语法格式为:
DO
语句块
LOOPWHILE<条件>
其执行过程为:
先执行语句块,然后计算条件,如果其结果为
True,则继续执行语句块,直到条件的结果为False时退出循环。
例:
按计算按钮求s=1+2+3+…+10。
解4:
解2与解4完全等价
integeri=1,s=0
DO
s+=i
i++
LOOPWHILEi<=10
st_1.text=string(s)
这四种循环结构中,前两种结构可以一次也不执行,后两种结构则至少执行一次。
实际上,只需要从前两种和后两种结构中各取其一就能表达所有的逻辑关系,但为了更清晰地表达条件,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在循环体内被修改,将影响循环次数。
例:
按计算按钮求s=1+2+3+…+10。
解5:
integeri,s=0
fori=1to10
s+=i
next
st_1.text=string(s)
3EXIT(退出循环)
在循环语句的循环体中,当我们想在中途退出循环时,使用EXIT语句是个好办法,执行该语句后,程序的控制权转至循环语句后的语句,执行该语句后,程序的控制权转至循环语句后的语句。
在嵌套循环的情况下,EXIT语句退出当前层循环,而不是所有循环。
功能:
执行该语句后,程序的控制权转至循环语句后的语句。
例:
下列程序运行后,变量s中的值是多少?
integeri,j,s=0
fori=1to10
forj=1to10
ifj>6then
exit
endif
next
s=s+i
next
4CONTINUE
(继续循环)
功能:
在循环语句的循环体中,遇到CONTINUE语句后,将不执行CONTINUE语句后与循环结束前的所有语句,而开始新一轮循环。
四、返回语句与终止程序运行
在编写事件处理程序或函数时,使用RETURN语句返回控制给用户或调用函数的地方。
当希望终止应用程序的运行时,使用HALT语句。
1RETURN语句
RETURN语句立即终止事件处理程序或函数的执行,把控制返回到调用程序。
语法格式:
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:
指定要传递给打开窗口的数据,该数据保存在Message对象的属性中,parameter参数的数据类型必须是下述三种类型之一:
String、Numeric、PowerObjectwindowtype:
string类型,指定要打开窗口的数据类型,该参数指定的窗口数据类型必须与windowvar参数的类型相同或是windowvar类型的后继对象
parent:
可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。
如果
应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口
返回值
Integer。
函数执行成功时返回1,发生错误时返回-1。
如果任何参数的值为NULL,OpenWithParm()函数返回NULL。
示例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)
(注:
专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。
可复制、编制,期待你的好评与关注)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PB 基础 语句