




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 PowerScript 语言,学习目标 熟悉PowerScript语言,包括数据类型、变量、运算符、表达式、各种语句; 掌握几个常用的标准函数 掌握编辑代码的基本操作 重点 PowerScript语言、几个常用的标准函数 难点 语句格式,2.1 PowerScript基础,2.1.1 注释 PowerScript提供了两种加注释的方法,通过注释可以进一步提高程序的可读性。 (1)单行注释用/。 (2)多行注释用/* */。 PowerScript在工具栏提供了将所选文字加上/去除注释的两个图标。,2.1.2 标识符,标识符是程序中用来表示变量、标号、函数、窗口、选单、控件、对象等名称的符号。,2.1.2 标识符,标识符的命名规则如下: (1)必须从字母或下画线开头。 (2)必须由字母、数字、下画线_、短横线-、¥、# 、%组成。 (3)不能是PowerScript保留字(见附录)。 (4)不区分大小写(但若用于Web、UNIX等必须区分大小写)。 (5)最长40个字符。,2.1.2 标识符,注意: 短横线与减号是同一个字符,而短横线可以用在标识符中,因此,表达式中使用减号时,必须在减号的两边加上空格,否则可能产生语法甚至语义错误。,2.1.3 续行符,PowerScript是一种自由格式的语言,一行中可以写多条语句,也可以将一条语句分成几行。 如果一行有多条语句,语句中间用分号分隔。 如果将一条语句分成几行,需要使用续行符&将语句连接起来。,2.1.3 续行符,IF side1 = 5 AND & side2 = 6 THEN area = 5*7 相当于 IF side1 = 5 AND side2 = 6 THEN area = 5*7 注意: 不能在标识符或保留字的中间续行。,2.1.4 特殊字符,字符串中可以包括特殊的ASCII码字符,它们不能使用常规的输入方法直接输入,需要使用其他字符来代替。 常用的特殊字符如表2.1所示。 【例2.1】特殊字符的使用 注意n、t,2.1.5 空值,空值NULL是PowerBuilder与数据库交换数据时使用的一种特殊值,代表数据未定义、不确定,它与空字符串、空字符、数值零以及日期00-00-00的意义完全不同。,2.1.5 空值,变量被赋予空值的途径有如下两条。 (1)从数据库中读到空值。 (2)使用SetNull()函数赋值。 String person / person=“ SetNull(person) / person值为NULL 测试变量或表达式是否为空值时,使用函数IsNull()。 IF IsNull(ID) THEN ,2.1.6 代词,PowerScript 提供了四个代词: This 、 Parent 、 ParentWindow、Super 使用代词可以增加代码的通用性,不受所指代的控件或对象的名称发生变化的影响。,2.1.6 代词,This: 指当前处理的对象,如控件、窗口、用户对象、菜单、应用对象等。 Parent:指当前处理的对象所在的窗口、用户对象、上一级菜单等。,2.1.6 代词,ParentWindow:指菜单所在的窗口,该代词只能用于菜单的事件处理程序。 Super:指子对象的祖先。 例:调用父类的Clicked事件 CALL Super:Clicked,2.2 数据类型,PowerBuilder的数据类型分为三大类: 标准数据类型 枚举类型 系统对象类型,2.2.1 标准数据类型,标准数据类型包括数值型、字符型、日期型、布尔型等一些最基本的数据类型。 各种类型的名称、含义及示例见表2.2。,2.2.2 枚举类型,枚举类型是PowerBuilder定义的特殊常量,常用于对象或控件的属性、系统函数的参数等。 在PowerScript中,用户不能定义自己的枚举类型,而只能按系统要求使用它。 枚举类型实际上是一组值,都以英文单词开始,以感叹号!结束。 yesno!、Exclamation!,2.2.2 枚举类型,【例2.2】枚举类型的使用 messagebox(“信息“,“保存吗?“,exclamation!,yesno!),2.3 变量声明及作用域,2.3.1 变量声明 用户自定义变量在使用之前必须先声明。 系统预定义的5个全局变量不需要声明,可以直接使用: SQLCA、SQLDA、SQLSA、Error、Message,2.3.1 变量声明,变量声明的格式: 数据类型 变量名=初值 /声明一个整型变量i Integer i 或 int i /声明三个实型变量a,b,c Real a,b,c /声明一个字符串变量my_home String my_home,2.3.1 变量声明,【例2.3】计算平方根,2.3.2 数组的声明,在PowerBuilder中可以使用数组。 一维数组声明格式: 数据类型 数组名 =初值 在声明数组时,如果方括号内未填数字,则声明一个动态数组,运行时由系统分配数组元素的个数。 可以声明多维数组。,2.3.2 数组的声明,Integer person30 声明整型数组person,30个元素,下标从1到30 Integer num3 TO 10 声明整型数组num, 8个元素,下标从3到10 Real grade10,10 声明一个二维数组,1010个元素,2.3.3 变量作用域,PowerBuilder变量的作用域有4种: Local、Instance、Global、Shared shared很少使用。 local-局部变量 在事件和函数中定义的变量都是Local变量,作用范围仅在该事件或函数内,在别的事件和函数中不起作用。,2.3.3 变量作用域,Instance-实例变量,局部的全局变量 作用范围不仅包括所在对象的全部事件及函数,而且包括该对象的所有控件的事件及函数。 Global-全局变量 作用域是整个应用程序。 尽量不使用。,2.4 运算符及表达式,PowerBuilder的运算符有4类: 算术运算符 关系运算符 逻辑运算符 连接运算符,2.4.1 算术运算符,算术运算符: + - * / +、-还用于表示正数、负数。 在表达式中,乘方高于乘、除,乘、除高于加、减。 同级运算遵循自左至右的原则。,2.4.1 算术运算符,PowerScript提供了一组扩展的算术操作符,运算规则与C语言相同: + - += -= /= *= =,2.4.2 关系运算符,关系运算符用来对相同类型的量进行大小比较运算,常用于条件语句和循环语句: = = 关系运算符的结果是True或False。,2.4.2 关系运算符,关系运算符可以应用于字符串的比较。 “boat”=“boat” 结果是 True “boAt“=“boat“ 结果是 False “book“=“tank“ 结果是 False,2.4.3 逻辑运算符,逻辑运算符用来对布尔型的量进行运算,结果是True或False: NOT AND OR,2.4.4 连接运算符,连接运算符+用于把两个String型或Blob型变量的内容连接在一起,形成新的字符串或Blob型数据: s1=“computer “+“book“ 则 s1值为computer book s2=“book“+“computer“ 则 s2值为bookcomputer,2.4.5 运算符的优先级,运算符按照优先级进行运算,共分9级 1 () 括号 2 +,- ,+,- 正号、负号、自增、自减 3 乘方 4 *,/ 乘、除 5 +,- 加、减及连接运算 6 =,=, 关系运算符 7 NOT 逻辑非 8 AND 逻辑与 9 OR 逻辑或,2.5 PowerScript语句,2.5.1 赋值语句 格式: 变量名= 表达式 例: area=3.14*r*r Int s s=1 3 5 6 8 注意:赋值后,数组s的长度确定为5,2.5.1 赋值语句,String s1 = You got a “job“ String s2 = “You got a job“ String s1 = You got a job String s2 = “You got a “job“ 注意:同时使用多个单引号或双引号时需使用转义字符,2.5.2 分支语句,1IF条件语句 条件语句分单行和多行两种格式。 格式1: IF condition THEN ELSE 格式2: IF condition THEN ELSE END IF,2.5.2 分支语句,在条件语句中,ELSE子句是可选的。 条件语句的执行过程: 先计算condition(条件表达式)的值,如果为True,则执行THEN后面的语句,否则执行ELSE后面的语句(如果有ELSE的话)。,2.5.2 分支语句,(1)IF a3 AND a=0 THEN t=3+b ELSE t=3 b (3)IF r0 THEN area=3.14*r*r l=2*3.14*r ELSE area=0 END IF 注意: 多行IF语句,必须以END IF结束,2CHOOSE语句 CHOOSE语句根据所测试的表达式的值来执行不同的语句。 格式:,CHOOSE CASE test_expression CASE expression_list1 Statements1 CASE expression_list2 Statements2 CASE expression_listn Statementsn CASE ELSE Statements n+1 END CHOOSE,2.5.2 分支语句,expression_List形式如下: 单个值 由逗号隔开的若干个值 某一区间,如1 to 8, b to h IS表达式: 如IS30 注:IS是保留字,代表test_expression的值 混合:例如2,4,7 to 15, IS20,2.5.2 分支语句,执行CHOOSE语句时,系统将逐条查找CASE,如果找到与测试值相匹配的判断表达式,就执行该CASE后的语句块,然后执行END CHOOSE后的语句。 如果CHOOSE语句中包含CASE ELSE子句,当未找到任何匹配的CASE条件时,执行CASE ELSE子句中的语句块。,2.5.2 分支语句,CHOOSE CASE score CASE IS =90 Grade=“A“ CASE 80 TO 89 Grade=“B“ CASE 70 TO 79 Grade=“C“ CASE 60 TO 69 Grade=“D“ CASE ELSE Grade=“E“ END CHOOSE,2.5.3 循环语句,1FORNEXT循环语句 格式: FOR v= s TO e STEP i NEXT STEP后的i表示步长,可以为正或负,缺省默认为1。,2.5.3 循环语句,【例2.4】FORNEXT语句的使用 int n,s=0,i n=integer(sle_1.text) for i=n to 1 step -1 s=s+i next sle_2.text=string(s),2.5.3 循环语句,2DOLOOP循环 有4种格式。,2.5.3 循环语句,格式1: DO UNTIL condition LOOP 当条件为False时,执行循环体;为True时退出循环。,2.5.3 循环语句,【例2.5】DO UNTILLOOP循环语句的使用。 int n,s=0,i=1 n=integer(sle_1.text) do until in s=s+i i=i+1 loop sle_2.text=string(s),2.5.3 循环语句,格式2: DO WHILE condition LOOP 当条件为True时,执行循环体;为False时退出循环。,2.5.3 循环语句,【例2.6】DO WHILELOOP循环语句的使用。 int n,s=0,i=1 n=integer(sle_1.text) do while i=n s=s+i i=i+1 loop sle_2.text=string(s),2.5.3 循环语句,格式3: DO LOOP UNTIL condition 先执行循环体,后判断条件。当条件为False时,执行循环体;为True时退出循环。,2.5.3 循环语句,【例2.7】DOLOOP UNTIL循环语句的使用。 int n,s=0,i=1 n=integer(sle_1.text) do s=s+i i=i+1 loop until in sle_2.text=string(s),2.5.3 循环语句,格式4: DO LOOP WHILE condition 先执行循环体,后判断条件。当条件为True时,执行循环体;为False时退出循环。,2.5.3 循环语句,【例2.8】DOLOOP WHILE循环语句的使用。 int n,s=0,i=1 n=integer(sle_1.text) do s=s+i i=i+1 loop while i=n sle_2.text=string(s),2.5.3 循环语句,3CONTINUE语句 格式: CONTINUE 使用: 只能用于DOLOOP和FORNEXT语句中。 功能: 循环中遇到CONTINUE语句,将不执行CONTINUE语句后面的语句,回到循环条件处继续执行。,2.5.3 循环语句,4EXIT语句 格式: EXIT 使用: 只能用于DOLOOP和FORNEXT语句中; 功能: 循环中遇到EXIT语句,将结束循环,跳到LOOP或NEXT后面的语句去执行。,2.5.4 GOTO语句,格式: GOTO 语句标号 功能:转到语句标号处继续执行; 使用:程序中应避免使用GOTO语句。,2.6 几个常用的标准函数,2.6.1 MessageBox函数 MessageBox函数常常用于显示出错、警告、提示及其他重要信息,在程序开发阶段被程序员用来显示程序运行状态及中间结果。 MessageBox函数运行时在屏幕上显示一个窗口,用户在响应该窗口后,程序才能继续运行下去。,2.6.1 MessageBox函数,格式: MessageBox(title,text ,icon ,button ,default) 其中title和text参数是必需的,其他大括号中的参数是可选的。,2.6.1 MessageBox函数,MessageBox(title,text ,icon ,button ,default) title:String类型,指定消息对话框标题。 text:指定消息对话框中显示的消息,该参数可以是数值数据类型、字符串或boolean值。,2.6.1 MessageBox函数,MessageBox(title,text ,icon ,button ,default) icon:枚举类型,可选项,指定要在该对话框左侧显示的图标。值为: Information!(默认值),StopSign!,Exclamation!,Question!,None!,2.6.1 MessageBox函数,MessageBox(title,text ,icon ,button ,default) button:枚举类型,可选项,指定显示在该对话框底部的按钮。值为: OK!(默认值),OKCancel!,YesNo!,YesNoCancel!,RetryCancel!,AbortRetryIgnore!。,2.6.1 MessageBox函数,MessageBox(title,text ,icon ,button ,default) default:数值型,可选项,指定作为默认按钮的按钮编号。 默认按钮是指获得焦点的按钮。 按钮编号自左向右依次计数,默认值为1。 如果该参数指定的编号超过了显示的按钮个数,函数将返回默认值。,2.6.1 MessageBox函数,MessageBox函数执行成功时返回用户选择的按钮编号(例如1、2、3等); 发生错误时返回-1; 如果任何参数的值为NULL,MessageBox函数返回NULL。,2.6.1 MessageBox函数,【例2.9】MessageBox函数的使用。,int n n=messagebox(“1“,sle_1.text,stopsign!,okcancel!,1) sle_2.text=string(n),2.6.2 Open函数,Open函数用来打开一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 买卖办公用品合同范例
- 二零二五版房产中介雇佣劳动合同
- 房地产分销代理协议
- 个人珠宝交易合同样本
- 丽江古城客栈出租合同样本
- 企业定制货架合同标准文本
- 小学生跳绳教学反思一
- BIM服务合同范本
- 辽宁房屋建筑与装饰工程定额
- 一次函数的图像与性质课堂教学设计
- 公共部门人力资源管理概论课件
- 六年级下册科学第一单元质量检测卷粤教版(含答案)
- 【计算机应用基础试题】韩山师范大学2022年练习题汇总(附答案解析)
- 2022年江苏对口单招市场营销试卷剖析
- 爱爱医资源-生理学-122排卵、黄体形成与月经周期
- 科技小巨人工程验收培训
- 大班绘本教案《月亮冰激凌》
- 关键过程(工序)和特殊过程(工序)管理办法
- 火力发电厂运煤设计规程
- 01-第一章--粉末的制取雾化法
- 3D打印学习教案
评论
0/150
提交评论