VB6.0运算符的用法(一)

时间:2021-07-12
本文章向大家介绍 VB6.0运算符的用法(一),主要包括 VB6.0运算符的用法(一)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

VB6.0运算符有算术运算符、赋值运算符、比较运算符、串联运算符、逻辑/按位运算符、其它运算符共6类。以下分别介绍它们的用法。

一、算术运算符

1、^ 运算符

用来求一个数字的某次方,次方数为 exponent 值。

(1)、语法

result = number^exponent

^ 运算符的语法具有以下几个部分:

部分       描述

result      必需的;任何数值变量。

number    必需的;任何数值表达式。

exponent   必需的;任何数值表达式。

(2)、说明

只有当 exponent 为整数值时,number 才可以为负数。在表达式中执行多个指数运算时,^ 运算符的计算顺序从左到右。

result 的数据类型通常是 Double 或包含 Double 的 Variant。但是,如果 number 或 exponent 中有一个是 Null 表达式,则 result 也是 Null。

 

2、* 运算符

用来将两数相乘。

(1)、语法

result = number1*number2

* 运算符的语法具有以下几个部分:

部分       描述

result      必需的;任何数值变量。

number1    必需的;任何数值表达式。

number2    必需的;任何数值表达式。

(2)、说明

result 的数据类型通常与最精确的表达式的数据类型相同。精确度由最低到最高的顺序是Byte、 Integer、Long、Single、Currency、Double 和 Decimal。

下列情况是例外:

A、乘法运算有一个 Single 和一个Long,则 result 转换成 Double。

B、result 的数据类型是 Long、Single 或 Date 变体,且超出正确范围,则 result 转换成转换成有 Double 的 Variant。

C、result 的数据类型是 Byte 变体,且超出正确范围,则 result 转换成 Integer 变体。

D、result 的数据类型是 Integer 变体,且超出正确范围, 转换成 Long 变体。

如果有一个或两个表达式是 Null 表达式,则 result 为 Null。如果一个表达式是 Empty,则作为 0 处理。

注意:乘法用到的精确度等级与加法和减法用到的精确度等级不一样。

 

3、/ 运算符

用来进行两个数的除法运算并返回一个浮点数。

(1)、语法

result = number1/number2

/ 运算符的语法具有以下几个部分:

部分       描述

result      必需的;任何数值变量。

number1   必需的;任何数值表达式。

number2   必需的;任何数值表达式。

(2)、说明

result 的数据类型通常是 Double 或 Double 变体。

下列情况是例外:

A、两个表达式都是 Byte、Integer 或Single表达式时,则 result 为一个 Single,除非超出正确范围;如果发生这种情况,则产生错误。

B、两个表达式都是 Byte、Integer 或Single 变体, 则 result 为一个 Single 变体,除非已超出正确范围;一旦发生这种情况,result 是一个包含 Double 的 Variant。

C、除法运算中有一个 Decimal及其它任何数据类型,则 result 为  一个 Decimal 数据类型。

D、有一个或是两个表达式是 Null 表达式,则 result 为 Null。如果一个表达式是 Empty 则作为 0 处理。

 

4、\ 运算符

用来对两个数作除法并返回一个整数。

(1)、语法

result = number1\number2

\ 运算符的语法具有以下几个部分:

部分       描述

result      必需的;任何数值变量。

number1   必需的;任何数值表达式。

number2   必需的;任何数值表达式。

(2)、说明

在进行除法运算之前,数值表达式通过舍去小数部分转换成 Byte、Integer 或 Long表达式。

通常,无论 result 是不是整数,result 的数据类型都是 Byte、Byte 变体、Integer、Integer 变体、Long 或 Long 变体。任何小数部分都被删除。但是,如果任何一个表达式是 Null,则 result 为 Null。如果一个表达式是 Empty,则作为0 处理。

 

5、Mod 运算符

用来对两个数作除法并且只返回余数。

(1)、语法

result = number1 Mod number2

Mod 的语法具有以下几个部分:

 

部分       描述

result       必需的;任何数值变量。

number1    必需的;任何数值表达式。

number2    必需的;任何数值表达式。

(2)、说明

在进行 Mod 运算或求余数运算时,该运算符将 number1 用 number2 除(将浮点数字四舍五入成整数),并把余数作为 result 的值返回。

例如,在下列表达式中,A (result) 等于 5。

A = 19 Mod 6.7

一般说来,不管 result 是否为一个整数,result 的数据类型为 Byte,Byte 变体、Integer、Integer 变体、Long 或一个包含 Long 的 Variant。任何小数部分都被删除。但是,如果任何一个 Null,类型的表达式出现时,result 都将是 Null。任何 Empty 类型表达式都作为 0 处理。

 

6、+ 运算符

用来求两数之和。

(1)、语法

result = expression1+expression2

+ 运算符的语法具有以下几个部分:

部分            描述

result           必需的;任何数值变量。

expression1      必需的;任何表达式。

expression2      必需的;任何表达式。

(2)、说明

在使用 + 运算符时有可能无法确定是做加法还是做字符串连接。为避免混淆,请使用 & 运算符进行连接,并且改进程序代码的可读性。

如果至少有一个表达式不是 Variant,则可运用以下法则:

A、两个表达式都是数值数据类型 (Byte、Boolean、 Integer、Long、Single、 Double、 Date、Currency 或是 Decimal),则相加。

B、两个表达式都是 String,则连接。

C、一个表达式是数值数据类型而另一个是 Null 之外的任意 Variant,则相加。

D、一个表达式是 String 而其它是 Null 之外的任意 Variant,则连接。

E、一个表达式是 Empty Variant,则返回另一个不变的表达式作为 result。

F、一个表达式是数值数据类型,而另一个是 String,则产生一个类型不匹配错误。

G、每个表达式都是 Null,则result 是 Null。

 如果两个表达式都是 Variant 表达式,则可运用下列规则:

如果 则

A、两个 Variant 表达式都是数值,则相加。

B、两个 Variant 表达式都是字符串,则连接。

C、一个 Variant 表达式是数值而另一个是字符串,则相加。

 对于只有数值数据类型表达式的单纯加法,result 的数据类型通常与其中最精确的表达式的数据类型相同。精确度由最低到最高的顺序是 Byte、Integer、Long、Single、Double、Currency 和 Decimal。

但下列情况例外:

A、一个 Single 和一个 Long 相加,则 result 为一个 Double。

B、result 的数据类型是 Long、Single 或 Date 变体,且越出正确范围, 则 result 转换成 Double 变体。

C、result 的数据类型是 Byte 变体,且超过本身的正确范围时,则 result 转换成 Integer 变体。

D、result 的数据类型是 Integer 变体,且超过本身的正确范围时,则 result转换成 Long 变体。

E、将一个 Date 加到任何数据类型上,则 result 为一个 Date。

F、如果有一个或两个表达式是 Null 表达式,则 result 为 Null。

G、如果两个表达式都是 Empty,则 result 是 Integer。

H、如果只有一个表达式是 Empty,则另一个表达式原封不动地作为 result 返回。

注意:加法和减法用到的精确度等级与乘法用到的精确度等级不一样。

 

7、–运算符

用来求两数之差或表示数值表达式的负值。

(1)、语法 1

result = number1 - number2

语法 2

- number

 

– 运算符的语法具有以下几个部分:

部分         描述

result        必需的;任何数值变量。

number      必需的;任何数值表达式。

number1     必需的;任何数值表达式。

number2      必需的;任何数值表达式。

(2)、说明

在语法 1 中,– 运算符是求两数之差的算术减法运算符。在语法 2 中,– 运算符为一元负运算符,说明表达式的值为负值。

result 的数据类型通常与最精确的表达式的数据类型相同。精确度由最低到最高的顺序是Byte、Integer、Long、Single、Double、Currency 和 Decimal。

下列情况例外:

A、当减法运算中有一个 Single 和一个 Long,则 result 转换成一个 Double。

B、result 的数据类型是一个 Long、Single 或 Date 变体,且超出正确范围,则 result 转换成包含 Double 的Variant。

C、result 的数据类型是一个 Byte 变体,且超出正确范围,则 result 转换成一个 Integer 变体。

D、result 的数据类型是一个 Integer 变体,且超出正确范围,则 result 转换成一个 Long 变体。

E、减法运算中有 Date 和其它任何数据类型,则 result 为一个 Date。

F、减法运算中有两个 Date 表达式,则 result 为一个 Double。

G、如果有一个或两个表达式是 Null 表达式,则 result 为 Null。

H、如果一个表达式是 Empty,则作为 0 处理。

注意:加法和减法用到的精确度等级与乘法用到的精确度等级不一样。

 

二、赋值运算符

1、= 运算符

用于对一个变量或属性赋值。

(1)、语法

variable = value

= 运算符语法有如下几部分:

部分        描述

variable     任何变量或任何可写的属性。

value       任何数值型或字符串文字、常数或表达式。

(2)、说明

等号左边的名字可以是一个简单的标量变量或一个数组的元素。等号左边的属性只能是运行时可写的属性。

 

三、比较运算符

<一>、含<、<=、>、>=、=、<>共6个运算符

1、语法

result = expression1 comparisonoperator expression2

比较运算符具有以下几个部分:

部分               描述

result               必需的;任何数值变量。

expression           必需的;任何表达式。

comparisonoperator    必需的;任何比较运算符。

2、基本用法说明

(1)、<(小于)

若expression1 < expression2,则结果True;

若expression1 >= expression2,则结果False;

若expression1 or expression2 = Null,则结果Null。

(2)、<=(小于或等于)

若expression1 <= expression2,则结果True;

若expression1 > expression2,则结果False;

若expression1 or expression2 = Null,则结果Null。  

(3)、>(大于)

若expression1 > expression2,则结果True;

若expression1 <= expression2,则结果False;

若expression1 or expression2 = Null,则结果Null。  

(4)、>=(大于或等于)

若expression1 >= expression2,则结果True;

若expression1 < expression2,则结果False;

若expression1 or expression2 = Null,则结果Null。

(5)、=(等于)

若expression1 = expression2,则结果True;

若expression1 <> expression2,则结果False;

若expression1 or expression2 = Null,则结果Null。

(6)、<>(不等于)

若expression1 <> expression2,则结果True;  

若expression1 = expression2,则结果False;

若expression1 or expression2 = Null,则结果Null。  

 

3、难以确定的比较

在比较两个表达式的时候可能难以确定将要比较的表达式是数字还是字符串。下列将说明如何比较表达式,或说明当其中一个表达式不是 Variant 时,如何获得比较的结果。

(1)、两个表达式都是数值数据类型 (Byte、Boolean、Integer、Long、Single、Double、Date、Currency 或Decimal),则进行数值比较。

(2)、两个表达式都是 String,则进行字符串比较

(3)、一个表达式是数值数据类型而另一个是数字 Variant、或可以为一数字,则进行数值比较。

(4)、一个表达式是数值数据类型而另一个是不能转换成数字的字符串 Variant,则产生类型不匹配的错误。

(5)、一个表达式是 String,而另一个是除了 Null 以外的任何 Variant,则进行字符串比较。

(6)、一个表达式是 Empty 而另一个是数值数据类型,则进行数值比较,使用 0 作为 Empty 表达式。

(7)、一个表达式是 Empty 而另一个是 String,则进行字符串比较,使用长度为零的字符串 ("") 作为 Empty 表达式。

 

4、两个都是 Variant 表达式的比较

如果 expression1 和 expression2 都是 Variant 表达式, 则它们的基本类型决定了比较方式。下面说明如何比较表达式,或指出通过比较得到的结果,此结果取决于 Variant 的基本类型:

(1)、两个 Variant 表达式都是数值,则进行数值比较。

(2)、两个 Variant 表达式都是字符串,则进行字符串比较。

(3)、一个 Variant 表达式是数值而另一个是字符串,则数值表达式小于字符串表达式。

(4)、一个 Variant 表达式是 Empty 而另一个是数值,则进行数值比较,使用 0 作为 Empty 表达式。

(5)、一个 Variant 表达式是 Empty 而另一个是字符串,则进行字符串比较,使用长度为零的字符串 ("") 作为 Empty 表达式。

(6)、两个 Variant 表达式都是 Empty,则表达式相等。

 

5、牵涉四舍五入的问题

(1)、当一个 Single 与一个 Double 作比较时,Double 会进行舍入处理而与此 Single 有相同的精确度。

(2)、当一个 Currency 与一个 Single 或 Double 进行比较,则 Single 或 Double 转换成一个 Currency。

(3)、当一个 Decimal 要与一个 Single 或 Double 进行比较时,Single 或 Double 会转换成一个 Decimal。

(4)、对于 Currency,任何小于 .0001 的小数将被舍弃;对于 Decimal,任何小于 1E-28 的小数将被舍弃,或者可能产生溢出错误。舍弃这样的小数部分会使原来不相等的两个数值经过比较后相等。

 

<二>、Is 运算符

用来比较两个对象的引用变量。

1、语法

result = object1 Is object2

Is 运算符的语法具有以下几个部分:

部分       描述

result       必需的;任何数值变量。

object1     必需的;任何对象名称。

object2     必需的;任何对象名称。

2、说明

如果 object1 和 object2 两者引用相同的对象,则 result 为 True;否则,result 为 False。有很多方法使两个变量引用相同的对象。

在以下示例中,A 和 B 已被设置成与 C 引用相同的对象:

Set A = B

在下例中,A 和 B 引用的对象与 C 相同:

Set A = C

Set B = C

 

<三>、Like 运算符

用来比较两个字符串。

1、语法

result = string Like pattern

Like 运算符的语法具有以下几个部分:

部分       描述

result      必需的;任何数值变量。

string      必需的;任何字符串表达式。

pattern     必需的;任何字符串表达式,遵循“说明”中的模式匹配约定。

2、说明

    如果 string 与 pattern 匹配,则 result 为 True;如果不匹配,则 result 为 False。但是如果 string 或 pattern 中有一个为 Null,则 result 为 Null。

    Like 运算符的特性随着 Option Compare 语句而不同。每个模块的缺省字符串比较方法是 Option Compare Binary。

    在字符串比较中,Option Compare Binary 的结果是根据字符的内部二进制表示法导出的排序顺序得到的。在 Microsoft Windows 中,排序顺序由代码页决定。下例说明通常二进制的排序顺序:

A < B < E < Z < a < b < e < z < _ < _ < _ < _ < _ < ?/P>

    在字符串比较中,Option Compare Text 的结果是字符串比较,它建立在不区分大小写的文本排序顺序基础上,而这一排序顺序是由系统的区域确定的。在对相同的字符使用 Option Compare Text 时会产生以下文本排序顺序:

(A=a) < (_=_) < (B=b) < (E=e) < (_=_) < (Z=z) < (_=_)

    内建的模式匹配功能提供了多种工具来进行字符串比较。有了模式匹配功能就可以使用通配符、字符串列表或字符区间的任何组合来匹配字符串。下列表格指出 pattern 中允许的字符以及它们与什么进行匹配:

pattern 中的字符     符合 string 中的

?                   任何单一字符。

*                  零个或多个字符。

#                  任何一个数字 (0–9)。

[charlist]            charlist.中的任何单一字符。

[!charlist]           不在 charlist 中的任何单一字符。

    在中括号 ([ ]) 中,可以用由一个或多个字符 (charlist) 组成的组与 string 中的任一字符进行匹配,这个组几乎包括任何一个字符代码以及数字。

    注意:为了与左括号 ([)、问号 (?)、数字符号 (#) 和星号 (*) 等特殊字符进行匹配,可以将它们用方括号括起来。不能在一个组内使用右括号 (]) 与自身匹配,但在组外可以作为个别字符使用。

    通过在范围的上、下限之间用连字符 (–),charlist 可以指定字符的范围。例如,如果 string 中相应字符的位置包括 A–Z 之间的任意大写字母,则 [A-Z] 得到一个匹配。不需要分界符,方括号内就可以包括多个范围。

    指定范围的意义取决于运行时的有效字符排序(正如 Option Compare 和系统的区域设置所确定的,代码在运行之中)。使用 Option Compare Binary 示例可以看到,范围 [A–E] 与 A、B 和 E 相匹配。通过 Option Compare Text 可以看到,[A–E] 与 A, a, _, _, B, b, E, e 相匹配。此范围与 _ 或 _ 不匹配,因为按照排序顺序,重音字符在非重音字符之后。

    下面列举的是模式匹配的其它重要规则:

(1)、charlist 开头的惊叹号 (!) 意味着,如果在 string 中找到任何不属于 charlist 的字符,则存在一个匹配。如果在方括号之外使用惊叹号,则惊叹号与自身匹配。

(2)、连字符 (–) 可以出现在 charlist 的开头(如果使用惊叹号,则在惊叹号之后),也可以出现在 charlist 的结尾与自身匹配。在任何其它地方,连字符用来识别字符的范围。

(3)、当指定了字符范围时,这些字符必须按照升序(从最小到最大)顺序来显示。[A-Z] 是有效模式,但 [Z-A] 不是。

(4)、字符序列 [] 被看作是长度为零的字符串 ("")。

    某些语言的字母表中有一些特殊字符,它们表示两个分开的字符。例如,在一些语言中,当字符 "a" 与 "e" 同时出现时,用 "_" 来表示字符 "a" 与 "e"。Like 运算符可以辨认出单一的特殊字符和两个个别字符是否相等。

    当一个语言使用了一个特殊字符,而且这个字符在系统地区设置中已被指定的时候,在 pattern 或 string 中出现的单一特殊字符将与其他字符串中等价的两个字符相匹配。与此相似,由方括号括起来的 pattern 中的单一特殊字符(字符本身在列表或范围内)将与 string 中等价的两个字符序列匹配。

 

四、串联运算符

1、& 运算符

用来强制两个表达式作字符串连接。

(1)、语法

result = expression1 & expression2

& 运算符的语法具有以下几个部分:

部分           描述

result          必需的;任何 String或 Variant 变量。

expression1     必需的;任何表达式。

expression2     必需的;任何表达式。

(2)、说明

A、如果 expression 不是字符串,则将其转换成 String 变体。

B、如果两个表达式都是字符串表达式,则 result 的数据类型是 String;否则 result 是 String 变体。

C、如果两个表达式都是 Null,则 result 也是 Null。

D、只要有一个 expression 是 Null,那么在与其它表达式连接时,都将其作为长度为零的字符串 ("") 处理。

E、任何 Empty 类型表达式也作为长度为零的字符串处理。

 

2、+ 运算符

可用于连接两个字符串表达式。

(1)、语法

result = expression1 & expression2

+ 运算符的语法具有以下几个部分:

部分           描述

result          必需的;任何 String或 Variant 变量。

expression1     必需的;任何表达式。

expression2     必需的;任何表达式。

(2)、说明

A、两个表达式都是 String,则连接。

B、一个表达式是 String 而其它是 Null 之外的任意 Variant,则连接。

C、两个 Variant 表达式都是字符串,则连接。

原文地址:https://www.cnblogs.com/it001xyz/p/15000736.html