volcanol的工控博客
Email : lilinly225@126.com 索要资料加QQ 点击进入 或 点击左侧的资料分享专用帖

volcanol ---- View OF Linux Can Appreciate Nature OF Linux

天行健,君子以自强不息

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  VBS脚本做为编程语言,提供了很多的运算符,通过这些运算符,可以实现不同的操作。运算符具有不同的类型

不同的运算符之间具有运算优先级。

 

一、运算符的分类

  大体分为以下几类:

    1、赋值运算符

    2、算术运算符

    3、比较运算符

    4、逻辑运算符

    5、链接运算符

 

二、运算符的优先级

  运算符具有优先级,优先级决定表达式中的运算顺序,就和 1 + 2 * 3 - 4 一样,先计算 2*3 , 然后得到的结果在和

1相加,最后在减去4, 这里先计算 * 然后再计算 + 和 - 就表示运算优先级。

  算术运算符的优先级和我们学数学时的计算顺序一样。

  大体是: 算术运算符 优先于 比较运算符,  比较运算符 优先于 逻辑运算符,  赋值运算符优先级最低。

  例如:   1+ 2  >  3  and   2*4 < 5

  这个就和我们数学里面一样,先计算 1+2 后与3比较得到一个结果A,  然后计算 2*4 再与5比较,得到一个结果B,最后

结果A和结果B最终进行逻辑运算得到整个表达式的值。

  如果不确定那么可以通过增加圆括号来改变运算符的运算顺序,这个与我们在数学中学习到的一样。

  例如:  (1 + 2 ) *  3 , 在VBS中这个表达式的计算顺序与数学一致,先算 1+ 2, 然后得到的和再与3相乘。

 

三、实例代码

'VBS脚本内置很丰富的运算符号
'1、赋值运算符  = 
'2、数学运算符  + - * /  mod (mod为取余数) \ (\为整除运算)
'3、比较运算符  >  <  =  >=  <=   <>   is
'4、逻辑运算符  and  or  not  xor  Eqv  Imp
'5、连接运算符  &  和 +

Option Explicit 

'赋值运算符
Dim nLen
Dim strName

'利用赋值运算符将函数的返回值赋值给变量
strName = InputBox("请输入你的名字:","提示","volcanol")
nLen = Len(strName)
MsgBox nLen


'数学运算符
'通过数学运算符对数字进行数学运算可以实现很多功能
'加法
Dim nAugend
Dim nAddend
Dim nSum
nAugend = 10
nAddend = 20
nSum = nAugend + nAddend
MsgBox "和是:" & nSum

'减法
Dim nMinuend
Dim nSubtractor
Dim nSub
nMinuend = 1000
nSubtractor = 999
nSub = nMinuend - nSubtractor
MsgBox "差是:" & nSub

'乘法
Dim fRadius
Dim fPi
Dim fCycle
Dim fArea
fRadius = 10.0
fPi = 3.1415926
fCycle = 2 * fPi * fRadius
fArea = fPi * fRadius * fRadius
MsgBox "周长是:" & fCycle
MsgBox "面积是:" & fArea

'除法
Dim fSquare
Dim fRoot
Dim fDivision
fSquare = 81
fRoot = 9
fDivision = fSquare / fRoot
MsgBox "商是:" & fDivision

'求余数
Dim nDividend
Dim nDivisor
Dim nMod
nDividend = 10
nDivisor = 3
nMod = nDividend Mod nDivisor
MsgBox "余数为:" & nMod


'比较运算符号
'比较运算符用来比较两个数、字符、或者字符串的大小
'下面演示大于号的比较,其他的不再演示
Dim strCompare(2)
strCompare(1) = "volcanom"
strCompare(2) = "volcanol"
If strCompare(1) > strCompare(2) Then
    MsgBox "strCompare(1)大于strCompare(2)"
Else
    MsgBox "strCompare(1)小于strCompare(2)"
End If

'is运算符
'is运算符用来比较两个对象是否是同一个对象
Dim objectA 
Dim objectB
Dim objectC 
Set objectC = CreateObject("WScript.shell")
Set objectA = objectC 
Set objectB = objectC 
If objectA Is objectB Then 
    MsgBox "objectA 和 objectB 是同一个对象"
Else
    MsgBox "objectA 和 objectB 不是同一个对象" 
End If


'逻辑运算符
'逻辑运算符也可以叫做布尔逻辑运算符,其运算结果得到的布尔逻辑的
'true 或者 false, 注意VB有两个内置的常数TRUE 和 FALSE
If True Then
    MsgBox "总是执行这一句"
Else
    MsgBox "从来不会执行"
End If

If Not False Then
    MsgBox "false取非运算,得到结果为真,执行这一句"
Else
    MsgBox "false取非运算,得到结果为真,不执行这一句"
End if

If 0 Then
    MsgBox "0的逻辑结果为假,这一句不执行"
Else
    MsgBox "0的逻辑结果为假,执行这一句"
End If

If 3 Then
    MsgBox "非0数的逻辑结果为真,执行这一句"
Else
    MsgBox "非0数的逻辑结果为真,这一句不执行"
End If

'下面两个例子,演示函数返回值参与逻辑运算
If strCompare(1) > strCompare(2) And MsgBox("输入选择测试",vbYesNo,"测试") Then
    MsgBox "逻辑与运算结果为真"
Else
    MsgBox "逻辑与运算结果为假"
End If

If strCompare(1) < strCompare(2) or MsgBox("输入选择测试",vbYesNo,"测试") Then
    MsgBox "逻辑或运算结果为真"
Else
    MsgBox "逻辑或运算结果为假"
End If

If 0 Xor 1 Then
    MsgBox "两个逻辑结果不一样的值进行异或得到的结果为真,执行这一句"
Else
    MsgBox "两个逻辑结果不一样的值进行异或得到的结果为真,不执行这一句"
End If

 

四、Tips

  在VBS中,运算符的优先级直接决定表达式的运算结果,如果不确定的话,那么最好的方式就是增加

圆括号() 来强制规定运算顺序,这样会减少出错的可能性。

 

--------------------------------------------------------------分割线---------------------------------------------------------------

1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

4、或者在页面右下角点推荐哟!!!

--------------------------------------------------------------分割线-------------------------------------------------------------

posted on 2018-11-22 15:36  volcanol  阅读(3042)  评论(0编辑  收藏  举报
volcanol ----View OF Linux Can Appreciate Nature OF Linux。