PB 基本语句
一、赋值语句
赋值语句用于给变量、对象属性赋值,这是应用程序中使用最频繁的语句,其语法格式为:variablename = expression_r
其中:⑴variablename是变量名或对象属性;
⑵expression_r是表达式,其数据类型应该与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(如果有该子句的话)。
例如:IF sle_State.text="BJ" THEN   MessageBox("欢迎","北京")
2.多行IF ... THEN语句
多行IF ... THEN语句的语法格式为:
IF 逻辑表达式1 THEN
         语句1
[ ELSEIF 逻辑表达式2 THEN
     语句2     
. . .  
] [ ELSE    语句n]
END IF
本语句的执行过程为:计算逻辑表达式1,如果其结果为True,则执行语句1,然后离开整个IF语句;否则计算逻辑表达式2,如果其结果为True,则执行语句2,然后离开整个IF语句;... 如果逻辑表达式的结果都是False,且存在ELSE子句,则执行语句3。
例1:从单行编辑框中输入考分,按“输入”按钮再根据考分显示及格或不及格。
Integer s
s = integer(sle_1.text)       //sle_1 text单行编辑框文本
If s < 60 then
   St_1.text = “不及格”   // St_1.text静态编辑框文本
Else
   St_1.text = “及格”
End if
例2:从单行编辑框中输入考分,按“输入”按钮后,再根据考分显示优、良、中、及格或不及格。
Integer s
s = integer(sle_1.text)       //sle_1 text单行编辑框文本
if s>=90 then
St_1.text = “优”
elseif s>=80 then
   St_1.text = “良”
elseif s>=70 then
   St_1.text = “中”
elseif s>=60 then
   St_1.text = “及格”
else
St_1.text = “不及格”
end if
3. CHOOSE CASE语句
根据测试表达式的值选择不同的操作,其语法格式为:
CHOOSE CASE 测试表达式
      CASE 判断表达式
执行语句块
       [CASE 判断表达式
语句块
. . .
        CASE 判断表达式
语句块]
       [CASE ELSE
语句块]
END CHOOSE
判断表达式可以使用如下的形式:
1. 用逗号分隔的一组数据,例如:2,4,7
2. 用TO表示一个区间范围,例如:2 TO 15
3. 用IS代表测试值,后跟关系操作符和比较值,例如:IS> 30
4. 组合运用上述三种方法,并用逗号进行分隔,例如:5,6,8 TO 12,IS > 20  
执行CHOOSE CASE语句时,PowerBuilder将逐条查找CASE,如果找到与测试值相匹配的判断表达式,就执行该CASE后的语句块,然后执行END CHOOSE后的第一条语句。如果CHOOSE CASE语句中包含CASE ELSE子句,则未找到任何匹配的CASE条件时,执行CASE ELSE子句中的语句块。
例3:从单行编辑框中输入考分,按“输入”按钮后,再根据考分显示优、良、种、及格或不及格。(用choose case重写例2)
integer f
String s
f = integer(sle_1.text)
CHOOSE CASE f
CASE IS >= 90    // 改进 90 to 100
S = "优"
CASE 80 TO 89
   S = "良"
CASE 70 TO 79   
S = "中"
CASE 60 TO 69   
S = "及格"
       CASE 0 TO 59
S = "不及格"
CASE ELSE   
S = "输入错,请重新输入!"
END CHOOSE
St_1.text = string(S)
三、循环语句
各种语言都提供了自己的循环语句,PowerScript也不例外,它的循环语句有三种形式:DO …LOOP、FOR …NEXT、GOTO,将前两种形式与EXIT和CONTINUE语句配合使用,可以完全抛弃GOTO语句,而且DO …LOOP本身有四种格式,丰富多采的表达方式为我们编写清晰流畅的程序提供了有效手段。
下面介绍PowerScript循环语句的格式、中途退出循环或中途开始下次循环的方法、以及循环嵌套的概念。
1 DO LOOP循环
DO LOOP结构提供了一种基于某个条件的灵活的循环方法,它有四种形式,分别为:
 DO UNTIL <条件>… LOOP
 DO WHILE <条件> … LOOP (类似c)
 DO …LOOP UNTIL <条件>
 DO …LOOP WHILE <条件> (类似c)
DO表示循环的开始,LOOP表示循环的结束,condition表示循环条件,是个逻辑表达式,其值为True或False。
(1) DO UNTIL … LOOP的语法格式为:
DO UNTIL <条件>
   语句块
LOOP
其执行过程为:先计算条件condition,其结果为False时,执行语句块,接着再检查条件,直到条件的结果为True时退出循环。
例:按计算按钮求s = 1+2+3+…+10。
解1:
integer i=1, s = 0
DO UNTIL i>10
   s += i
i ++
LOOP
st_1.text = string(s)
(2) DO WHILE … LOOP的语法格式为:
DO WHILE <条件>
语句块
LOOP
其执行过程为:先计算条件,其结果为True时,执行语句块,接着再检查条件,直到条件的结果为False时退出循环。
例:按计算按钮求s = 1+2+3+…+10。
解2:
integer i=1, s = 0
DO WHILE i<=10
   s += i
i ++
LOOP
st_1.text = string(s)
(3) DO …LOOP UNTIL的语法格式为:
DO   
语句块
LOOP UNTIL <条件>
其执行过程为:先执行语句块,然后计算条件,如果其结果为False,则继续执行语句块,直到条件的结果为True时退出循环。
例:按计算按钮求s = 1+2+3+…+10。
解3:解1与解3完全等价
integer i=1, s = 0
DO
   s += i
i ++
LOOP UNTIL i>10
st_1.text = string(s)
(4) DO … LOOP WHILE的语法格式为:
DO   
语句块
LOOP WHILE <条件>
其执行过程为:先执行语句块,然后计算条件,如果其结果为True,则继续执行语句块,直到条件的结果为False时退出循环。
例:按计算按钮求s = 1+2+3+…+10。
解4:解2与解4完全等价
integer i=1, s = 0
DO
   s += i
i ++
LOOP WHILE i<=10
st_1.text = string(s)
这四种循环结构中,前两种结构可以一次也不执行,后两种结构则至少执行一次。
实际上,只需要从前两种和后两种结构中各取其一就能表达所有的逻辑关系,但为了更清晰地表达条件,PowerScript还是提供了四种结构。
2 FOR NEXT循环
FOR … NEXT是个循环次数确定的循环结构,它使循环体内的语句执行规定的次数,其语法结构为:
FOR varname = start TO end [STEP increment]   
Statementblock
NEXT
其中,varname是循环变量,可以是任意的数值类型,start、end分别是循环变量的初值和终值,increment是每次循环后循环变量的步长增量(缺省值为1),statementblock是一组语句,称做循环体,方括号表示该子句可以省略。
FOR …NEXT语句的执行过程为:循环变量varname从start开始,到end为止,重复执行循环体,每执行一次,varname被重新赋值,新值为:varname+ increment。另外,如果start和/或end在循环体内被修改,将影响循环次数。
例:按计算按钮求s = 1+2+3+…+10。
解5:
integer i, s = 0
for i=1 to 10
   s += i
next
st_1.text = string(s)
3 EXIT(退出循环)
在循环语句的循环体中,当我们想在中途退出循环时,使用EXIT语句是个好办法,执行该语句后,程序的控制权转至循环语句后的语句,执行该语句后,程序的控制权转至循环语句后的语句。
在嵌套循环的情况下,EXIT语句退出当前层循环,而不是所有循环。
功能:执行该语句后,程序的控制权转至循环语句后的语句。
例:下列程序运行后,变量s中的值是多少?
integer i, j,s=0
for i=1 to 10
for j=1 to 10
     if j>6 then
     exit
     end if
   next
   s = s + i
next
4 CONTINUE(继续循环)
功能:在循环语句的循环体中,遇到CONTINUE语句后,将不执行CONTINUE语句后与循环结束前的所有语句,而开始新一轮循环。
四、返回语句与终止程序运行
    在编写事件处理程序或函数时,使用RETURN语句返回控制给用户或调用函数的地方。当希望终止应用程序的运行时,使用HALT语句。
1 RETURN语句
RETURN语句立即终止事件处理程序或函数的执行,把控制返回到调用程序。
语法格式:RETURN [表达式]
功能:RETURN语句立即终止事件处理程序或函数的执行,把控制返回到调用程序。
表达式值作为事件处理程序或函数的返回值返回。
2 HALT语句
HALT语句用于终止应用程序的运行,其语法为:HALT {CLOSE}
其中CLOSE是个可选项。当HALT语句不带CLOSE选项时,该语句立即终止应用程序的运行;当HALT语句带CLOSE选项时,执行到该语句后,应用程序先执行应用对象的Close事件处理程序,之后再终止应用程序的运行。

[转]PB 基本语句 循环语句的更多相关文章

  1. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  2. 【Python】-NO.99.Note.4.Python -【Python3 条件语句 循环语句】

    1.0.0 Summary Tittle:[Python]-NO.99.Note.4.Python -[Python3 条件语句 循环语句] Style:Python Series:Python Si ...

  3. delphi if 语句循环语句

    if语句------------------------------------------------------------------------------------------------ ...

  4. python 分支语句 循环语句

    分支语句 #if-else if a > b: print('aaa') else: print('bbb') #if-elif-else if a > b: print('a>b' ...

  5. JavaScript基本语法 -- 条件语句 & 循环语句

    条件语句 条件语句(Conditional statement)是JavaScript里面的基本结构之一,程序根据表达式的真假决定执行或者跳过某个分支,于是,条件语句有时候也可以称为"分支语 ...

  6. python - 条件语句/循环语句/迭代器

    条件测试:if 条件表达式python 的比较操作        所有的python对象都支持比较操作            可用于测试相等性.相对大小等            如果是复合对象,pyt ...

  7. java基础 流程控制和条件语句,循环语句

    顺序结构 程序的顺序结构: 如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的, 一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束. if语句 if语句使用bo ...

  8. js基础(条件语句 循环语句)

    条件语句 if语句块的语法形式如下: //只有两种情况下if(条件){要执行的语句块;}else{要执行的语句块;} //多种情况下if(条件){要执行的语句块;}else if(条件){要执行的语句 ...

  9. c#基础语句——循环语句(for、while、foreach)

    循环类型:for.while.foreach 循环四要素:初始条件-->循环条件-->循环体-->状态改变 1.for 格式: for(初始条件:循环条件:状态改变) {循环体(br ...

随机推荐

  1. centos6.4 ceph安装部署之ceph block device

    1,prelight/preface ceph storage clusterceph block deviceceph filesystemceph object storage 此篇记录ceph ...

  2. cocos2d-x3.0 SpriteFrameCache

    bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ...

  3. UINavigationController技巧<一>——修改返回按钮的标题

    UINavigationController 一般push到另一界面后,返回按钮标题便是上一页面的title,但是对于push的第一页或者是上一页面没有title的,返回按钮标题便是默认back,如图 ...

  4. cocoa pods出现的错误

    ERROR:  While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod 解决办法: sudo gem ...

  5. Android源码大全

    JavaApk-安卓应用游戏APP源码下载 - Android App Games Source Download. http://www.javaapk.com/  700多个 Android 例子 ...

  6. Oracle EBS使用adpatch工具打patch过程【Z】

    Oracle EBS使用adpatch工具打patch过程 从Metalink下载补丁 登陆到Metalink(https://support.oracle.com),Oracle内部用户可以使用AR ...

  7. 游戏基础元素之精灵——Cocos2d-x学习历程(九)

    1.创建精灵 在实际使用中,精灵是由一个纹理创建的.在不加任何设置的情况下,精灵就是一张显示在屏幕上的图片.通常精灵置于层下,因此我们首选在层的初始化方法中创建精灵,设置属性,并添加到层中. 有多种方 ...

  8. js设置元素readonly属性注意事项

    注意大小写,应该为:obj.readOnly = true;

  9. css透明背景兼容方案

    css透明是一个技术活,因为这里面涉及到了IE8及以下版本不兼容opacity这个css3属性,而filter:alpha(opacity=80)这个值则是不兼容IE6.网上比较流行的透明css是这样 ...

  10. android sdk 更新问题——截止2014年6月10日有效

    因为墙的原因,很多人的sdk都更新不了,下面记录了我刚刚实现更新的方法: 进到Android SDK Manager,菜单Tools->Options..,这时弹出一个框,在这个框的下面Othe ...