赵工的个人空间


专业技术部分转网页计算转业余爱好部分


 编程语言

常用的编程语言
C#编程语言基础
C#面向对象与多线程
C#数据及文件操作
JavaScript基础
JavaScript的数据类型和变量
JavaScript的运算符和表达式
JavaScript的基本流程控制
JavaScript的函数
JavaScript对象编程
JavaScript内置对象和方法
JavaScript的浏览器对象和方法
JavaScript访问HTML DOM对象
JavaScript事件驱动编程
JavaScript与CSS样式表
Ajax与PHP
ECMAScript6的新特性
Vue.js前端开发
PHP的常量与变量
PHP的数据类型与转换
PHP的运算符和优先规则
PHP程序的流程控制语句
PHP的数组操作及函数
PHP的字符串处理与函数
PHP自定义函数
PHP的常用系统函数
PHP的图像处理函数
PHP类编程
PHP的DataTime类
PHP处理XML和JSON
PHP的正则表达式
PHP文件和目录处理
PHP表单处理
PHP处理Cookie和Session
PHP文件上传和下载
PHP加密技术
PHP的Socket编程
PHP国际化编码
MySQL数据库基础
MySQL数据库函数
MySQL数据库账户管理
MySQL数据库基本操作
MySQL数据查询
MySQL存储过程和存储函数
MySQL事务处理和触发器
PHP操作MySQL数据库
数据库抽象层PDO
Smarty模板
ThinkPHP框架
Python语言基础
Python语言结构与控制
Python的函数和模块
Python的复合数据类型
Python面向对象编程
Python的文件操作
Python的异常处理
Python的绘图模块
Python的NumPy模块
Python的SciPy模块
Python的SymPy模块
Python的数据处理
Python操作数据库
Python网络编程
Python图像处理
Python机器学习
TensorFlow深度学习
Tensorflow常用函数
TensorFlow用于卷积网络
生成对抗网络GAN


首页 > 专业技术 > 编程语言 > VBScript的运算符与控制语句
VBScript的运算符与控制语句
一、VBScript运算符:

VBScript有一套完整运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。

算数运算符

比较运算符

逻辑运算符

描述

符号

描述

符号

描述

符号

求幂

^

等于

=

逻辑非

Not

负号

-

不等于

<>

逻辑与

And

*

小于

<

逻辑或

Or

/

大于

>

逻辑异或

Xor

整除

\

小于等于

<=

逻辑等价

Eqv

求余

Mod

大于等于

>=

逻辑隐含

Imp

+

对象引用比较

Is

 

 

-

 

 

 

 

字符串连接

&

 

 

 

 

运算符有优先级,当表达式包含多个运算符时按照优先级顺序运算,可以使用括号越过这种优先级顺序。当表达式包含多种运算符时,首先计算算数运算符,然后计算比较运算符,最后计算逻辑运算符。所有的比较运算符优先级相同,按从左到右的顺序计算。

字符串连接&,不是算数运算符,在优先级顺序中排在所有的算术运算符之后和所有的比较运算符之前。Is运算符是对象引用比较运算符,只是检查并判断两个对象引用是否引用的是同一个对象。

二、VBScript的控制语句:

脚本代码的运行顺序一般都是从上到下执行的,属于顺序结构。实际应用中,还会经常用到其他结构顺序,主要分条件结构和循环结构。

1. 条件结构:

1)If...Then...Else语句:

①单行结构:

单行结构的语法格式如下:

If 条件表达式 Then 语句体1 [Else 语句体2]

条件表达式的返回值如果为Ture,则执行Then后面的语句体1,否则执行Else后面的语句体2。如果省略Else部分,则执行If后面的语句。

示例:

<script type=”text/vbscript”>

Function greeting()

  i=hour(time)

  if  i=8 then document.write(“上课了”)

  if  i=10 then document.write(“上操了”)

  if  i=12 then document.write(“午休了”)

end function

greeting()

</script>

②多行结构:

多行结构的语法格式如下:

If 条件表达式 Then 

   语句体1 

[Elseif 条件表达式2 Then

   [语句体2 ]]

......

[Else

   [语句体n ]]

End If

先测试条件表达式1,如果为True,则执行Then后面的语句体1,然后推出块结构,执行下面的语句;如果条件表达式1的结果为False,再测试条件表达式2,以此类推。当找到一个为True的条件时,就执行相应的语句体,然后执行End If后面的语句;如果条件表达式都不为True,如果有Else,则执行Else后的语句体n,如果没有Else,则一个语句也不执行,直接执行End If后面的语句。

多层嵌套示例:

<script type=”text/vbscript”>

if  a<>Empty then

   x=a

else

  if  b<>Empty then

     x=b

  else

     if  c<>Empty then

       x=b

     else

       x=”变量为何都未赋值”

     end if

   end if

end if

Document.write(x)

</script>

多层嵌套条件语句可以嵌套更多,但不容易理解,易出错,建议使用后面的示例:

<script type=”text/vbscript”>

if  a<>Empty then

   x=a

elseif  b<>Empty then

     x=b

elseif  c<>Empty then

       x=b

else

   x=”变量为何都未赋值”

end if

Document.write(x)

</script>

2)Select Case语句:

Select Case语句是一种更高效的多条件分支结构,采用来代替多条件嵌套语句,以便在多个语句中有选择地执行其中一个。多条件分支语句更容易阅读。

多条件分支结构的语法如下:

Select Case 测试表达式

  [Case 表达式1

    语句体1]]

  [Case 表达式2

    语句体2]]

  ......

  [Case Else

    语句体n]]

End Select

先计算测试表达式,然后将表达式的值与每个Case后面的表达式的值进行比较,若相等,就执行该Case语句下的语句体。每个Case的值是一个或几个值的列表,如果在一个列表中有多个值,则要用逗号把值隔开。如果不止一个Case与测试办表达式匹配,那么只对第一个匹配的Case执行与之相关的语句体。如果在表达式列表中没有一个值与测试表达式相匹配,且有Case Else子句,则执行Case Else子句中的语句体n,否则一条语句也不执行。

示例如下:

<script type=”text/vbscript”>

Dim n

X=InputBox(“请输入一个数字(1~7):”)

if  not isnumeric(x) then x=””

select case x

case “”

  MsgBox “输入错误,请输入数字!”

case 1

  MsgBox “星期一”

case 2

  MsgBox “星期二”

case 3

  MsgBox “星期三”

case 4

  MsgBox “星期四”

case 5

  MsgBox “星期五”

case 6

  MsgBox “星期六”

case 7

  MsgBox “星期日”

case else

  MsgBox “请输入1~7的数字!”

end select

</script>

2. 循环结构:

循环是重复执行一组语句,VBScript中有4种循环语句。

1)Do...Loop循环:

①当条件为Ture时重复执行语句:

Do [While循环条件]

循环体

[Exit  Do]

Loop

或者

Do 

循环体

[Exit  Do]

Loop [While循环条件]

示例:

<script type=”text/vbscript”>

Sub  ChkFirstWhile()

  Dim  a,b

  a=0

  b=30

  Do While b>10

     b=b-1

     a=a+1

  Loop

  MsgBox “循环重复了”&a&”次”

End Sub

ChkFirstWhile()

</script>

或者

<script type=”text/vbscript”>

Sub  ChkFirstWhile()

  Dim  a,b

  a=0

  b=30

  Do 

     b=b-1

     a=a+1

  Loop While b>10

  MsgBox “循环重复了”&a&”次”

End Sub

ChkFirstWhile()

</script>

②重复执行语句直到条件变为True:

Do [Until循环条件]

循环体

[Exit  Do]

Loop

或者

Do 

循环体

[Exit  Do]

Loop [Until循环条件]

示例:

<script type=”text/vbscript”>

Sub  ChkFirstWhile()

  Dim  a,b

  a=0

  b=30

  Do Until b<10

     b=b-1

     a=a+1

  Loop

  MsgBox “循环重复了”&a&”次”

End Sub

ChkFirstWhile()

</script>

或者

<script type=”text/vbscript”>

Sub  ChkFirstWhile()

  Dim  a,b

  a=0

  b=30

  Do 

     b=b-1

     a=a+1

  Loop Until b<11

  MsgBox “循环重复了”&a&”次”

End Sub

ChkFirstWhile()

</script>

两种循环语句的区别是:对于包含While关键字的Do循环,在循环条件为真时一直重复执行循环体,直到循环条件不满足时退出Do循环;对于包含Until关键字的Do循环,在循环条件不为真时一直重复执行循环体,直到循环条件为真时退出Do循环。

③退出Do循环:

在Do循环体中,可以使用Exit Do语句强制退出Do...Loop循环,一般是在某些特殊情况下使用,可使用If...Then...Else语句选择使用Exit Do语句,在某种条件为True时执行Exit Do退出循环。示例:

<script type=”text/vbscript”>

Sub  ExitExample()

  Dim  a,b

  a=0

  b=9

  Do Until b=10

     b=b-1

     a=a+1

     If  b<20 Then Exit Do

  Loop 

  MsgBox “循环重复了”&a&”次”

End Sub

ExitExample()

</script>

示例中,b的初始值将导致死循环,If...Then...Else语句检查此条件,防止出现死循环。

2)While...Wend循环:

While 循环条件

循环体

Wend

While循环先判断循环条件,根据循环条件的值来决定是否执行循环体,循环条件为True时执行循环体,直到循环条件不满足时退出While循环。

While...Wend是传统的循环结构语句,但缺乏灵活性,最好用Do...Loop语句来代替。

3)For...Next循环:

For循环用来完成已知循环次数的循环,也称计数循环,其中含有一个计数变量每重复一次循环,计数变量的值就会增加或减小。

For  循环变量=初值 To 终值 [Step 步长]

循环体

[Exit For]

Next [循环变量]

执行For循环时,现将循环变量设为初值,测试循环变量是否小于(当步长为正)或大于(当步长为负)终值,若是则执行循环,若否则退出循环并执行For循环后面的语句。如果省略Step语句,那么默认步长值是1。示例:

<script type=”text/vbscript”>

Sub  Total()

  Dim  n,total

  For n=0 To 20 Step 2

    total=total+n

  Next

  MsgBox “20内偶数和为”&total&”。”

End Sub

Total()

</script>

在For循环中,可以使用Exit For语句在计算器变量达到终值之前退出For...Next语句。

4)For...Each循环:

For...Each循环与For...Next循环相似,但For...Each循环只针对数组或对象集合中的每个元素重复执行一组语句。如果不知道一个数组或集合内有多少个元素,用For...Each循环会非常方便地遍历数组或集合,实现快速获取数组或集合内的元素值,也可以快速为数组或集合内的元素赋值。

For Each 下标变量 In 数组|集合

语句体

Next [元素]

示例:使用For...Next语句循环为一个数组元素赋值,然后再使用For...Each...Next语句把数组中所以元素的值读出来显示在页面中。

<script type=”text/vbscript”>

Sub  MyFor()

  Dim  a(10)

  For n=0 To UBound(a)

    a(n)=n

  Next

  For Each m in a

     Document.write(a(m)&”<br>”)

  Next

End Sub

MyFor()

</script>

 

Copyright@dwenzhao.cn All Rights Reserved   备案号:粤ICP备15026949号
联系邮箱:dwenzhao@163.com  QQ:1608288659