Visual Basic程序设计(第三版)
上QQ阅读APP看书,第一时间看更新

3.2 运算符和表达式

“运算符”是代表一定运算功能的符号,可以对常量、变量(即运算数)进行处理。运算符分为算术运算符、关系运算符、逻辑运算符和字符串连接运算符。由各种运算符与运算数组成的式子称为“表达式”。

3.2.1 赋值运算符与赋值表达式

通过赋值符号“=”可以将数据的值保存在一个变量或对象的属性中,格式如下:

变量名=表达式

(1)“变量名”可以是普通变量或对象的属性名。

(2)赋值符号“=”与数学上的等号意义不同。例如:

a=3

a=a + 1 '变量a加1后的结果再赋给a,a的结果为4

(3)在利用赋值语句进行变量赋值时,应考虑赋值符号左右两端的数据类型。例如:

Dim a As Integer

a="你好"

当赋值符号左右两端数据类型不一致时,就会发生“类型不匹配”的错误。

3.2.2 算术运算符与算术表达式

算术运算符可进行算术运算,由算术运算符与运算数组成的式子称为算术表达式,如表3-5所示。

表3-5 算术运算符

3.2.3 关系运算符与关系表达式

关系运算符用来比较运算数的关系,由关系运算符与运算数组成的式子称为关系表达式,如表3-6所示。

表3-6 关系运算符

关系表达式的运算结果有两种情况:当关系成立时,表达式的值为True;当关系不成立时,表达式的值为False。

如果两个字符串进行比较,则按照字符的ASCII值逐个进行比较。例如,关系表达式"hello" > "hi"的结果是False。

3.2.4 逻辑运算符与逻辑表达式

逻辑运算符包括逻辑与And运算,逻辑或Or运算,逻辑非Not运算和逻辑异或Xor运算。这些用来判断运算数的逻辑关系,由逻辑运算符与运算数组成的式子称为逻辑表达式,如表3-7所示。

表3-7 逻辑运算符

(1)And运算结果为True时,说明两个运算数表达的条件都成立;Or运算表示两个运算数表示的条件其一成立,结果就会为真;Xor运算结果为真表示两个运算条件其一成立,但不能同时成立。

(2)如果运算数是数值数据,则按照非0值对应True、0对应False的关系转换为布尔数据进行运算。例如,可以用如下逻辑表达式表示x不能被3整除,也不能被4整除:

(x Mod 3)And(x Mod 4)

(3)如果表达数据位于某个范围内,可以采用逻辑和关系运算符,例如:

a<=x And x<=b  '表示x在[a,b]范围内

"A"<=y And y<="Z"  '表示y在["A","Z"]范围内

3.2.5 字符串运算符与字符串表达式

字符串运算符用来进行字符串的连接运算,由字符串运算符与运算数组成的式子称为字符串表达式,如表3-8所示。

表3-8 字符串运算符

两个字符串运算符功能略有区别,“&”会自动将非字符串类型的数据转换成字符串后再进行连接运算,而“+”则不能自动转换。

3.2.6 运算符的优先级

当多种运算符出现在一个表达式中时,是按照运算符的优先级决定运算次序的,优先级高的运算符将先得到处理。运算符优先级由高到低依次为算术运算符、字符串连接运算符、关系运算符、逻辑运算符,如表3-9所示,其中1表示优先级最高。

表3-9 运算符的优先级

例如,当a=1,b=2,c=3,d=4时,表达式a+b > c+d And a >=3 Or Not c > 2 Or d <1的值为False,相当于计算表达式:((a+b)>(c+d))And(a >=3)Or(Not(c > 2))Or(d < 1)。