当前位置:首页 > 技能相关 > PowerBuilder > 正文内容

PowerScript 操作符和表达式

admin3年前 (2022-01-24)PowerBuilder3620 修订时间:2022-01-25 20:47:08

操作符的功能包括:算术运算;数值、文本和布尔值比较;布尔型数据逻辑操作;连接字符串和 blob型数据。

一、PowerScript 支持四种类型操作符:

• 关系操作符:= 等于、> 大于、< 小于 、<> 不等于、>= 大于等于、<= 小于等于

• 逻辑操作符:NOT 逻辑非、AND 逻辑与、OR 逻辑或

• 用于字符串的连接操作符,例如:"字符串" +"字符串"

• 用于数值型数据的算术操作符:+ 加 、- 减、* 乘、/ 、^ 乘方 

二、操作符在表达式中的优先级

{ 最高  ( ) }, {  一元操作符+,−  },{ ^ },{  *,/ },{   加、减和连接操作符+,−  },{  =,>,<,<=,>=,<> } ,{ NOT }.{ AND },{(最低) OR }

三、表达式的数据类型

在计算表达式时,如果存在多种类型,PowerBuilder 将把它们转换为表达式中存在的级别最高的数据类型。

表达式中数值数据类型转换的规则是:级别低的数据类型转换为级别高的数据类型;无符号的级别高于有符号的类型。例如:一表达式中有 long 型变量和 unsignedinteger 型变量,结果转换为 unsignedlong 型。

1(最高) double ;2 real ;3 decimal ;4 Unsignedlong,long ;5(最低) Unsignedinteger,intger

操作符使数据类型发生转换,其转换作用如下:

• 操作符+、−、*的最低精度为 long 型,在进行这三种操作时,如果有低于 long 的数据类型级别的数据类型将至少转换为 long 型,表达式返回结果的精度至少为 long ;

• 操作符/和^的最低精度为 double 型,所有数据都转化为 double 后计算,结果的精度为 double;

• 在 long 可接受范围内的整数 long ,超出 long 可接受范围的整数 Unsignedlong ,超出 unsignedlong 范围 (编译错误),带有小数点(非指数形式) decimal ,带有小数点(具有指数形式) double;

四、赋值与表达式

在赋值语句中,表达式的结果被转化为等号左侧变量的类型后,再赋给它。由于在赋值过程中存在类型转换,在高级数值类型转换为低级数值类型时,有可能发生溢出。

下面一段程序说明赋值语句的赋值过程:

integer a = 32000, b = 1000;long d ;d = a + b ;

最后结果 d = 33 000,赋值过程为:

a. 转换 a 为 long 型。b. 转换 b 为 long 型。c.进行相加 a + b = 33000。d. 把结果赋给变量 d,d = 33000。

下面一段程序的赋值过程将会溢出:

integer a = 32000, b = 1000, c ;long d ;c = a + b ;d = c ;

赋值过程为:

a. 转换 a 为 long 型。b. 转换 b 为 long 型。c. 进行相加 a + b = 33000。d. 把结果转换为 integer,赋给变量 c,c = -32536,溢出。e. 把变量 c 转换为 long,赋给变量 d,d = -32536,无法挽救溢出的结果。

string 型数据赋值给 char 型时,char 型数据得到字符串中的第一个字符。char 型数据赋给 string 型时,字符串成为仅有一个字符的字符串。

string 型数据可以赋给 char 型数组,遵守如下规则:

• 动态 char 型数组可以直接赋值

• 定长数组,如字符串超长,多余部分截去

• 数组长度大于字符串长度,复制整个字符串给数组,包括零字符串终止符(zero terminator)

char 型数组也可赋值给 string 型数据,数组中的内容被复制到 string 型数据中,如果在 char 型数组中存在字符串终止符,复制仅进行到终止符。基于上述规则,所有接受 string 的函数都接受 char 型数据和 char 型数组。




 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=38

分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。