前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

PB 基本语句 循环语句_阿亦_新浪博客 加载中… 阿亦的博客 http://blog.sina.com.cn/lxponline [订阅][手机订阅] 首页 博文目录 图片 关于我 个人资料 阿亦 Qing 微博 加好友 发纸条 写留言 加关注 博客等级: 博客积分:146 博客访问:7,353 关注人气:3 天天美食 精彩图文 相关博文 更多>> 推荐博文 什么样的智能手表才是我们需要的 康斯坦丁 韩国化妆品牌的中国沉浮记 麦青Mandy 互联网金融热背后的冷思考 徐天舒Hector 等待惠普的命运很有可能是被收购 hotashang 丁道师:2013年中国互联网1 丁道师 我眼中的程序外包 何万里的V博 十种常见的电话诈骗方式及预防要 付亮的竞争情报应用 要做好4G,中国移动必须自我革 CMCC宁宇 管理就是开会,但开会不一定是管 宋新宇 未来的1800天,创业者去哪儿 俞永福 查看更多>> 谁看过这篇博文 加载中… 正文 字体大小:大 中 小 PB 基本语句 循环语句 (2009-12-19 12:21:53)转载▼ 标签: it 分类: PB PB 基本语句 一、赋值语句 赋值语句用于给变量、对象属性赋值,这是应用程序中使用最频繁的语句,其语法格式为:variablename = expression_r 其中:&#9332;variablename是变量名或对象属性; &#9333;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结构提供了一种基于某个条件的灵活的循环方法,它有四种形式,分别为: &#61557; DO UNTIL <条件>… LOOP &#61557; DO WHILE <条件> … LOOP (类似c) &#61557; DO …LOOP UNTIL <条件> &#61557; 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数据窗口一 后一篇:雷人49 评论 重要提示:警惕虚假中奖信息 | [发评论] 评论加载中,请稍候... 发评论 | 登录名: 密码: 找回密码 注册 记住登录状态昵 称: 分享到微博 评论并转载此博文验证码: 请点击后输入验证码 收听验证码 匿名评论 发评论 以上网友发言只代表其个人观点,不代表新浪网的观点或立场。 < 前一篇PB数据窗口一 后一篇 >雷人49 新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正 新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑 Copyright &copy; 1996 - 2014 SINA Corporation, All Rights Reserved 新浪公司 版权所有