《PB程序设计》第2章PowerScript编程语言课件_第1页
《PB程序设计》第2章PowerScript编程语言课件_第2页
《PB程序设计》第2章PowerScript编程语言课件_第3页
《PB程序设计》第2章PowerScript编程语言课件_第4页
《PB程序设计》第2章PowerScript编程语言课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 PowerScript编程语言2.1PowerScript语言基础2.2数据类型2.3运算符及表达式2.4变量2.5PowerScript语句2.6语句应用实例小结 返回总目录2.1PowerScript语言基础2.1.1 注释2.1.2 标识符2.1.3 特殊的ASCII字符 2.1.4 空值2.1.5 代词 返回章目录2.1.1 注释注释是添加在程序中的一些说明性文字。注释并不会被执行,而是简单地被跳过。PowerScript有两种注释: 行注释:用/表示,从双杠开始到行尾均为注释。 块注释:用/* */表示,从/*开始到*/结束为注释。例如,下面是两种注释的使用:/这是一行注释s

2、t1.Text=希望本书为您提供帮助/占用半行注释/*从此行起注释 中间行尾行结束注释*/ 返回本节录2.1.2 标识符用来标识变量名、数组名、文件名、函数名、窗口名、控件名及对象名等的字符序列,称为标识符PowerScript中标识符的命名必须遵循以下原则:(1)必须以字母或下划线“”开头。(2)不可以是保留字。(3)最长可以到40个字符,但中间不能有空格(实际可以比这更长)。(4)不区分大小写字母(PART和Part、part是等价的)。(5)可以是任何字母、数字及一些特殊符号(-、S | 、#、%)的组合。 返回本节录 2.1.3 特殊的ASCII字符在字符串中可以包含一些特殊的ASCI

3、I字符,特别是控制字符。特殊的ASCII字符或控制字符用符号“”做前缀。 返回本节录2.1.3 特殊的ASCII字符 返回本节录特殊字符表示方法 特殊字符表示方法换行n走纸 f回车r退格b制表符t 波浪线垂直制表v 十进制形式的ASCII码000-255单引号十六进制形式ASCII码h00-hFF双引号八进制形式的ASCII码o000-o3772.1.4 空值空值(Null)是关系数据库的一个特殊概念,可以把它看做是一个特定的值,代表数据未定义、不确定。它与空字符串、数值零以及日期00000000的意义完全不同。空值在程序中用英文单词Null表示。 返回本节录2.1.5 代词PowerBuil

4、der提供了四个代词:This、Parent、ParentWindow和Super,可以用于引用某指定对象或控件,来增加程序代码的通用性This:代表窗口、用户对象、菜单、应用对象或控件本身,即代表正在为之编写事件处理程序的对象Parent:指当前控件所在的窗口arentWindow:代表运行时菜单所在的窗口,该代词只能在菜单的事件处理程序中使用。 Super:此代词只在使用了继承时使用,指代的是该对象的父对象。调用祖先对象函数的语法格式是:Super:函数名(参数表) 返回本节录本节完 2.2 数据类型2.2.1 标准数据类型2.2.2 系统对象数据类型2.2.3 枚举数据类型2.2.4 A

5、ny数据类型 返回章目录2.2.1 标准数据类型 标准数据类型是我们在各种程序设计语言中已经熟悉的数据类型,如字符型、数值型、日期型等。下面我们简单介绍一下这些数据类型Blob:大型二进制类型。包括文本文件、图像等。Boolean:布尔类型。布尔型变量只有True和False,用于逻辑表达式。声明布尔类型变量时,默认值为False。Character(或Char):单个ASCII字符。Date:日期类型。包括年(4位数)、月(2位数)、日(2位数)。如:20021205。 返回本节录2.2.1 标准数据类型DateTime:日期时间类型。包括年、月、日和时间。如:20021205192336D

6、ecimal(或Dec):数值型。带符号,最多18位数,小数点位置不限。如:456.2312Double:双精度类型。范围从2.2E-308到1.7E+308,默认值为0。如:1.234E-5。Integer(或Int):整型。16位带符号整数,范围从-32768到32767,默认值为0Long:长整型。32位带符号整数,范围从-2147483648到2147483647,默认值为0 返回本节录2.2.1 标准数据类型Real:实型。具有6位有效数字的带符号浮点数,范围从1.17E-38到3.4E+38,默认值为0。如:56.43E+6String:字符串类型。用于存储任意的ASCII字符,3

7、2位环境中长度只受系统能力的限制。书写时,用单引号()或双引号()括起来,如:ABCTime:24小时制时间,包括小时、分、秒及几分之一秒。范围从000000到235959999999。如:124556123456 返回本节录2.2.1 标准数据类型UnsignedInteger(UnsignedInt或UInt):无符号整型。16位数,范围从0到65535。UnsignedLong(或ULong):无符号长整型。32位数,范围从0到4294967295。 返回本节录2.2.2 系统对象数据类型在PowerBuilder中,窗口、菜单、各种控件都是系统对象,每一种系统对象实际上都是定义在Pow

8、erBuilder内部的一种数据类型。在Browser画板中通过System选项卡可以浏览到PowerScript的全部系统对象数据类型。通常只需在相应画板中定义它们,对它们进行可视化操作。但有时候需要动态地处理窗口、菜单、控件等系统对象,这时就要定义系统对象数据类型。 返回本节录2.2.3 枚举数据类型枚举类型是一种用符号代替的数值,是PowerBuilder定义的特殊常量。在PowerBuilder8.0中开发人员不能定义自己的枚举类型,只能按系统要求使用它。枚举类型实际上是一组值,每个值都以英文单词开始,以感叹号(!)结束。如:Center!、Left!、Right!。枚举数据类型有以下

9、两种用途,其中,后一种用途较多:(1)作为函数的参数。(2)指定对象或控件属性。 返回本节录 2.2.4 Any数据类型PowerBuilder支持任意数据类型(Any),它可以存储包括标准数据类型、对象、结构和数组等各种类型的数据值。 Any数据的类型由初值类型决定,也就是说,当不能确定变量声明为何种类型时,可以将它声明为Any类型,以后可以为此变量赋任意类型的值,但一旦赋值,它的类型也就决定了。说明Any类型变量的方法和说明其他类型变量的方法是一样的。可以用一般的赋值语句对变量赋值,也可将一个数组赋值给单一的Any变量。当对Any变量赋值后,可以使用ClassName函数检测它的实际数据类

10、型。 返回本节录2.2.4 Any数据类型在使用Any类型的变量时要注意以下规则和约束:(1)可以赋值给Any变量任何值。(2)当把Any变量的值赋给兼容的数据类型变量时,必须知道Any变量的内容。(3)如果Any变量的值是一个数组,不可以直接存取数组的元素。(4)如果Any变量的值是一个结构,不可以使用圆点符号(.)来直接存取结构的元素。(5)当一个Any变量被赋值后,该变量不能再改为没有数据类型的一般Any变量,但它可以再被赋予其他类型的值。 返回本节录本节完2.3 运算符及表达式2.3.1 运算符2.3.2 表达式 返回章目录2.3.1 运算符PowerScript支持的运算符可以分为四

11、种类型:算术运算符、关系运算符、逻辑运算符和连接运算符。运算符有优先级和结合律。1.算术运算符 算术运算符用于完成数学运算。算术运算符有加(+)、减(-)、乘()、除(.)、乘方()。其中加(+)、减(-)还用于正、负号表示。 返回本节录2.3.1 运算符算术运算优先级别:乘方最高、乘除次之、加减最低;同级运算遵循自左至右的原则。PowerScript还提供了一组扩展算术运算符:+、-、+=、-=、.=、=、=。例:A+ 把A加1赋给A A- 把A减1赋给A A+=B 把A加B赋给AA-=B 把A减B赋给A A=B 把A乘B赋给A A.=B 把A除以B赋给A A=B 把A的B次方赋给A 返回本

12、节录2.3.1 运算符2.关系运算符关系运算符用来对相同类型的操作数进行大小比较运算,常用于条件语句和循环语句。关系运算符有大于()、等于(=)、小于()、不等于()、大于等于(=)、小于等于(10And A、=、=、 关系运算符Not 逻辑非And 逻辑与Or 逻辑或 返回本节录本节完2.4 变量2.4.1 变量的作用域2.4.2 变量的声明 返回章目录2.4.1 变量的作用域在PowerBuilder中,有四种不同范围的变量,它们有不同的作用域和用途: (1)局部变量(Local):在相应的代码段定义和使用的临时变量,代码结束此变量消失。所以它的作用范围仅在所在的事件和函数内起作用。(2)

13、实例变量(Instance):属于一个对象且与这个对象的一个实例相关,它只能在这个对象内部的任何地方使用。当在Window下定义时,其作用范围是在该窗口及其窗口内的各种控件的所有事件、函数等。 返回本节录2.4.1 变量的作用域(3)全局变量(Global):可以在应用的任何地方存取,它的定义独立于任何对象。在整个应用程序中,对全局变量的调试和跟踪非常困难,建议不用或少用全局变量。(4)共享变量(Shared):在一个对象内定义,但可以在这个对象的所有实例中引用。共享变量是在第一次创建该类的对象时初始化的。当用户删除该对象时,共享变量将保留其最后一个值。 返回本节录2.4.2 变量的声明在Po

14、werBuilder中,所有变量在使用之前,都要首先予以声明。变量声明的简单格式为数据类型 变量名=初值,变量名=初值需要说明的是:(1)变量名必须是PowerScript合法的标识符。(2)一次说明多个变量时,变量之间用逗号分隔。(3)未定初值时,数值型值为零,字符型值为空字符。 (4)系统预定义的五个全局变量(SQLCA、SQLDA、SQLSA、Error、Message)不需事先声明。例如: Integer score=100String city=大连,country 返回本节录本节完2.5 PowerScript语句2.5.1 赋值语句2.5.2 条件语句2.5.3 循环语句 2.5

15、.4 其他常用语句 返回章目录2.5.1 赋值语句赋值语句能够把一个表达式的结果或者变量和常量的值赋给一个变量、某对象的属性或成员变量。它的语法格式如下:variable name=expression其中,variable name代表变量名,expression代表表达式,其作用是把表达式的值赋给等号左边的变量。 例如: area=3.14rr。由于等号也是关系运算符,因此不能使用多重的赋值方法。例如: ls str1=ls str2=abc /这条语句是错误的 返回本节录2.5.2 条件语句条件控制语句通过判断关系表达式的返回值决定程序的执行语句,常用的条件控制语句有If语句和Choos

16、e Case语句。If语句首先计算一个逻辑表达式,然后根据表达式的值是真(True)还是假(False)决定下一步执行的语句组;Choose Case语句可同时处理多种情况。下面分别介绍这两种语句。 返回本节录2.5.2 条件语句1.If语句 If语句的格式有两种形式,我们从简单到复杂逐一介绍。(1)单行IfThen格式 单行形式的If语句的语法格式如下:If表达式(expression)Then语句(statements1)Else语句2 它的含义是:当关系表达式成立(返回值是True)的时候,程序执行语句1;如果关系表达式不成立(返回值是False)的时候,跳过语句1,执行下一条语句(如果

17、方括号中写有语句2,则先执行语句2)。例如:If gs userid=superThen MessageBox(欢迎super!)单行IfThen语句书写时整条语句写在一行上,而且最后不能加End If,否则编译会报错。 返回本节录2.5.2 条件语句(2)多行的形式 多行形式的IfThen语句的语法格式如下:If表达式1Then 语句1ElseIf表达式2Then 语句2 Else语句n End If 它的含义是:当关系表达式1成立(返回值是True)的时候,程序执行语句1;如果关系表达式不成立(返回值是False)的时候,执行ElseIf中关系表达式2,如果成立,则执行语句2;否则继续向下

18、跳,直至执行语句n。 返回本节录2.5.2 条件语句2.Choose Case语句 Choose Case语句根据某变量的不同取值执行相应的语句。常用于情况比较多的事件的处理。 Choose Case的语法格式是:Choose Case test expression Case expression _ list1statements1Case expression _ list2statements2 Case expression _ listn statementsn Case Else statements n+1 End Choose 返回本节录2.5.2 条件语句Choose Ca

19、se条件语句中的表达式列表,可有如下几种不同的写法:(1)独立的单个变量值。(2)用逗号分隔的一些变量值的列表,比如:0,2,4。(3)用To表示一个区间范围,例如:2To10或bToh。(4)用Is代表测试值,后跟关系操作符和比值,例如:Is=0。(5)以上几种语句的组合(中间以逗号隔开),例如:5,6,8To12,Is20。 返回本节录2.5.3 循环语句循环语句用来根据设置好的判断依据的状态,决定是否循环执行某段程序块,被重复执行的语句叫做循环体。循环可以分为两种,一种是事先知道循环的执行次数,一种是知道循环结束的条件。PowerScript提供的循环语句有三种形式:DoLoop循环语句

20、、ForNext循环语句、Goto循环语句。 返回本节录2.5.3 循环语句1.DoLoop循环语句 无论是知道循环的次数,还是知道循环结束的条件,都可以使用DoLoop语句来控制循环。DoLoop语句中,Do表示循环的开始,Loop表示循环结束,在它们之间的是循环体。PowerScript根据循环条件放的位置和结束值,提供了四种形式: 返回本节录2.5.3 循环语句(1)Do WhileLoop语句,格式如下:Do While Condition StatementBlock Loop其中,Condition为循环条件表达式,StatementBlock为循环体(循环执行的语句,以下含义与此

21、相同)。当程序执行到Do While语句时,通过判断条件表达式的真假,决定是否执行循环语句中的程序块。如果表达式返回真值(True),则执行程序块,然后再回到Do While语句,判断表达式的真假,决定是否继续执行循环语句,否则跳出循环,执行下一条语句。 返回本节录2.5.3 循环语句(2)Do UntilLoop语句,格式如下:Do Until Condition StatementBlock Loop当程序执行到Do Until语句时,如果条件表达式返回假值,则执行程序块,然后再回到Do Until语句,判断表达式的真假,如果仍是假则继续执行循环语句,否则跳出循环,执行下一条语句。也就是程

22、序一直执行循环,直到条件表达式为真。 返回本节录2.5.3 循环语句(3)DoLoop While语句,格式如下:Do StatementBlock Loop While Condition 这种格式的用法与第一种类似,只是由于条件表达式的判断在最后,因此先执行了程序块之后再判断是否进行循环。 返回本节录2.5.3 循环语句(4)DoLoop Until语句,格式如下:Do StatementBlockLoop Until Condition这种格式的用法与第二种类似,只是由于条件表达式的判断在最后,因此也是先执行了程序块以后,再判断是否进行下一循环。 返回本节录2.5.3 循环语句2.For

23、Next循环语句ForNext是一个计数循环,用于循环次数确定的循环结构,它使循环体内的语句执行规定的次数。其语法结构为: For Varname=Start To EndStep Increment StatementBlock Next 其中,Varname代表循环变量,Start和End分别为初值和终值,Increment为步长增量,缺省值为1。程序首先将变量赋以初值,执行程序块,然后将变量值增加一个步长,再执行程序块。这样循环执行,直到变量值等于终值,最后执行程序体后,退出循环,执行Next后的语句。这种语句通常用在循环次数确定的代码中。 返回本节录2.5.3 循环语句3.Goto语句

24、Goto语句是一条无条件转移语句,它将控制跳转到程序中的其他位置,用Goto语句也可以构成循环。Goto语句的语法格式为Goto Label 其中,Label是语句标号,它符合标识符的命名规则。但程序中尽量避免使用Goto语句,以方便程序的管理和维护。 返回本节录2.5.3 循环语句4.Continue(继续循环) Continue语句是用在循环语句中的控制语句,自身不带任何参数。PowerScript语言中,在DoLoop和ForNext语句的循环体中,遇到Continue语句后,将不执行Continue语句后与循环结束前的所有语句,而提前开始新一轮循环。DoLoop与ForNext循环语句

25、均可嵌套使用,而Continue只在当前的循环体内有效,并不会影响外层的循环体。 返回本节录2.5.3 循环语句5.Exit(退出循环)Exit也是用在循环语句中的控制语句,可在循环体的任何地方使用。当程序执行Exit语句时,程序就退出当前循环体。 与Continue语句一样,在嵌套循环的情况下,Exit语句退出当前层循环,而不是所有循环。 返回本节录2.5.3 循环语句6.循环嵌套 循环嵌套就是把一个循环放在另一个循环的内部,后面(2.6节中)通过一个实例说明循环嵌套的工作方式。 返回本节录2.5.4 其他常用语句1.Return语句 Return语句用于从脚本中返回调用程序,等待用户的下一个动作。其语法格式为ReturnExpressionReturn语句还可以用在用户定义函数中。当程序执行到Return处时,退出函数,继续执行调用函数处以下的代码。用在函数中时,Return后面可以带一个返回值Expression,此返回值的类型必须与函数的返回值类型相同。 返回本节

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论