• volcanol的工控博客


      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、或者在页面右下角点推荐哟!!!

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

  • 相关阅读:
    解决shiro多次从redis读取session的问题
    软件测试其他方法
    异常HTTP Status 500
    支付
    java面试
    SQL入门
    软件测试理论基础
    软件测试学习第一章
    Linux在终端命令行模式下智能补全功能以及组合键
    Linux安装
  • 原文地址:https://www.cnblogs.com/volcanol/p/10001392.html
Copyright © 2020-2023  润新知