工控随笔_19_西门子_WinCC的VBS脚本_08_常量和流程控制_01
在编程的过程中,有时候我们会使用一些固定的值,例如圆周率,或者某个人的生日,或者家庭住址等等,
这些信息对于一个对象来说一旦确定就不会改变,因此我们在编程的时候也不希望这些信息会改变,在VBS里面
也提供了和其他一些语言中一样的机制: 常量。
常量大体有两种类型: 字面值常量 和 具名常量。
一、常量
Option Explicit ' vbs 常量
'vbs有两种类型的常量: 字面值常量 和 具名常量 '字面值常量
'字面值常量, 就如字面意思一样,其值就和字面意思表达的一样
Dim strAddress
'下面语句的 中华人民共和国上海市 就是字面值常量
strAddress = "中华人民共和国上海市" Dim nYear
'下面语句的 2000 就是字面值常量
nYear = '具名常量
'1、具名常量,其实质就是其值不能修改的变量, 这个变量一旦初始化后
' 其存储的内容不能被改变,
'2、具名常量通过关键字 const 指定
Const Pi = 3.1415926 '具名常量初始化后不能在赋值
Pi= MsgBox Pi
如上代码,具名常量初始化后不能再进行赋值,如果赋值的话就会报错。如下图所示:
这个地方需要注意。
Option Explicit ' vbs 常量
'vbs有两种类型的常量: 字面值常量 和 具名常量 '字面值常量
'字面值常量, 就如字面意思一样,其值就和字面意思表达的一样
Dim strAddress
'下面语句的 中华人民共和国上海市 就是字面值常量
strAddress = "中华人民共和国上海市" Dim nYear
'下面语句的 2000 就是字面值常量
nYear = '具名常量
'1、具名常量,其实质就是其值不能修改的变量, 这个变量一旦初始化后
' 其存储的内容不能被改变,
'2、具名常量通过关键字 const 指定
Const Pi = 3.1415926 '具名常量初始化后不能在赋值
'Pi= 10 MsgBox Pi 'vbs的内置具名常量
'在vbs中内置了部分具名常量,这些常量方便使用vbs
'典型的具名常量就是 msgbox的具名常量,通过不同的具名常量显示不同的按钮形式
'1、仅显示OK、确定按钮
MsgBox Pi,vbOKOnly '2、显示yes、no按钮
MsgBox Pi,vbYesNo '3、显示 i 图标
MsgBox Pi,vbYesNo + vbInformation '对于vbs内置的具名常量,建议可以查手册,这里再说几个常用的,其他不多说
' vbNewLine 这个是表示再起一行的意思
' vbcrlf 这个与上面的vbnewline是一个意思
MsgBox Pi & vbNewLine & "新行" & vbCrLf & "新的第二行"
二、流程控制
流程控制是编程语言最终要的概念之一,需要注意。
Option Explicit Rem 流程控制 '流程控制是编程语言中重要的概念,通过流程控制可以实现复杂的功能控制
'流程控制主要有: 分支、循环两种 ' 分支
'1、分支主要有IF语句
'2、select case 语句 'if语句
Dim strPrompt
Dim nSelect strPrompt = vbCrLf & "1: 选择Yes说哈哈" & vbCrLf & _
"2: 选择No说嘻嘻" & vbCrLf & "3: 选择取消,不说话"
nSelect = MsgBox("请选择不同的按钮,然后实现不同的功能" & strPrompt, vbYesNoCancel) If nSelect = vbyes Then
MsgBox "选择Yes说哈哈"
ElseIf nSelect = vbno Then
MsgBox "选择No说嘻嘻"
Else
MsgBox "选择取消,不说话"
End If '这个地方需要注意select case语句的执行与其他语言的不一致的地方
Select Case nSelect
Case vbyes
MsgBox "选择Yes哈哈"
Case vbno
MsgBox "选择No说嘻嘻"
Case vbcancel
MsgBox "选择取消,不说话"
Case Else
MsgBox "不正确的选择"
End Select '循环
'循环共有四种形式
'1、 for..... next
'2、 do....loop、
'3、 while....wend 'for 循环
'for 循环有两种形式
'1、for...next
'2、for each .....next 'for...next
'for....next循环主要用于循环次数明确的循环应用,例如打印斐波那契数列
'的前多少项
Dim nStart
Dim nSecond
Dim nLoop
Dim strMsg
Dim nTemp '斐波那契数列的开始两项
nStart =
nSecond =
strMsg = nStart & vbNewLine & nSecond '计算斐波那契数列的第3-30项
For nLoop = To
nTemp = nSecond
nSecond = nSecond + nStart
nStart = nTemp
strMsg = strMsg & vbNewLine & nSecond
Next
MsgBox strMsg 'for each.....next循环
'for each....next循环是用来遍历集合中所有元素的一种特定的循环结构
'通过这个循环来实现对循环次数不确定的情况进行遍历
'使用for each....next循环需要使用关键字in, in表示在集合中访问元素
'同样需要使用一个循环控制变量,在循环中这个循环变量代表的就是集合中的元素
'但是这个变量在使用完毕之后,循环变量就 objLoop = empty
'如果要再使用必须重新赋值
Dim objFSO
Dim objFolder
Dim objLoop
Dim strFileName Set objFso=CreateObject("Scripting.FileSystemObject")
Set objFolder= objFSO.GetFolder("D:\01_vbs")
For Each objLoop In objFolder.Files
strFileName =strFileName & objLoop.Name & vbCrLf
'MsgBox "我是循环变量,我的值为:" & objLoop
Next
MsgBox strFileName '下面的语句检测objLoop变量在循环结束后的值
If IsEmpty(objLoop) Then
MsgBox "已经设置为empty"
ElseIf IsNull(objLoop) then
MsgBox "已经设置为空"
Else
MsgBox "未知结果"
End If 'for each....next 循环还可以用来遍历数组
'注意新的脚本解释器对于数组维数的定义,这里5表示下标最大为5,但是开始
'是从0,所以有6个元素
Dim nArrayName() nArrayName() =
nArrayName() =
nArrayName() =
nArrayName() =
nArrayName() =
nArrayName() = For Each nLoop In nArrayName
MsgBox nLoop
Next MsgBox "遍历后,nLoop的值为:" & nLoop
在使用For Each...next 语句的时候,要注意循环变量的值,在循环结束后已经自动的被设置
为Empty,如果这个时候访问的话必须再次赋值,否则就会出错,如下图所示:
循环变量在循环结束后被设置为 Empty。
三、Tips
1、分支结构不要嵌套太深
2、循环结构知道次数的一半用For语句
3、数组、集合遍历可以使用For each...next语句。
--------------------------------------------------------------分割线---------------------------------------------------------------
1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/
2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料
3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏
4、或者在页面右下角点推荐哟!!!
--------------------------------------------------------------分割线---------------------------------------------------------------
工控随笔_19_西门子_WinCC的VBS脚本_08_常量和流程控制_01的更多相关文章
- 工控随笔_20_西门子_WinCC的VBS脚本_09_常量和流程控制_02
vbs不但提供了分支结构,还提供了丰富的循环形式.一共有3种循环: 1.for循环 2.do...loop循环 3.while循环 各种循环有各自的特点,在使用的时候可以进行转换. 前面已经描述过Fo ...
- 工控随笔_10_西门子_WinCC的VBS脚本_01_基础入门
很多人都认为VB语言或者VBS脚本语言是一种很low的语言,从心里看不起VB或者VBS, 但是其实VBS不仅可以做为系统管理员的利器,同样在工控领域VBS语言大有用武之地. 西门子的WinCC提供了两 ...
- 工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01
最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定 ...
- 工控随笔_13_西门子_WinCC的VBS脚本_04_变量类型之二
上一个随笔说了一些关于vbs变量类型的内容,这一篇我们继续说说变量类型相关的内容. 一.NULL补充内容 '需要注意的是,NULL不能简单通过 = 来进行比较,而必须通过 'IsNull函数来实现 ' ...
- 工控随笔_18_西门子_WinCC的VBS脚本_07_变量作用域和传值、传址
在vbs脚本中也存在和其他编程语言一样的概念,那就是变量的作用域,变量的作用域决 定在什么范围内可以访问. 同样的在vbs脚本中对于变量也有一个生命周期, 变量的生命周期决定了变量的存续时间 这个主要 ...
- 工控随笔_17_西门子_WinCC的VBS脚本_06_过程和函数
和其他语言一样,vbs提供了过程和函数机制,通过函数和过程可以优化代码结构和实现代码复用, 减少代码的编写量. 一.代码 具体不再多说,看实例代码. ' vbs的函数和过程 '1.过程式编程是一大编程 ...
- 工控随笔_15_西门子_WinCC的VBS脚本_05_变量类型之三_VBS数组
数组是一种复杂数据类型,不但有数组本身的数据类型: 数组,还有数组元素中存储的数据的类型. 一.vbs中的数组类型 在VBS中提供了两种数组类型,一种是固定数组,一种是动态数组. 1.固定数组 就是在 ...
- 工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型
说到编程语言,总是绕不开数据类型,因为数据类型决定了数据可以进行什么样的操作.同时数据类型 从广义上来说是一种数据结构,在过程式编程的过程中,曾经有过这样一种说法: 程序 = 数据结构 + 算法 可见 ...
- 工控随笔_11_西门子_WinCC的VBS脚本_02_运算符
VBS脚本做为编程语言,提供了很多的运算符,通过这些运算符,可以实现不同的操作.运算符具有不同的类型 不同的运算符之间具有运算优先级. 一.运算符的分类 大体分为以下几类: 1.赋值运算符 2.算术运 ...
随机推荐
- PC能替代服务器吗?
PC能替代服务器吗?全方位解析二者区别_华为服务器_服务器x86服务器-中关村在线http://server.zol.com.cn/536/5366835_all.html
- 练习UML类图中的类的表示
第一部分:UML类图(class diagram) 类图用来展现一组类.类的特性以及其类相互之间的关系,一个类图由一组类以及它们之间的关系构成,类图用来对系统的领域概念以及静态结构进行建模. 在软件模 ...
- centos6.5安装Mysql5.6及更改密码
(一) centos6.5安装Mysql5.6 二进制文件安装的方法分为两种: 第一种是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz的压缩文件: 第二种是使用RPM或其他包进行 ...
- C#控件之ComboBox控件使用
首先如果要给ComboBox控件输入要显示的内容,方法是点击控件会显示如下图所示: 然后点击”编辑项”,如下所示: 下面在这里输入控件要显示的内容,即可. 如果要让ComboBox控件设置默认显示项, ...
- SpringBoot+POI报表批量导出
由于servletResponse 获取的输出流对象在一次请求中只能输出一次,所以要想实现批量导出报表,需要将excel文件打包成zip格式然后输出. 好了,废话不多说,上代码. 1. 首先,需要导入 ...
- Dapp的PVP发模式--magic-maze-2d游戏解读
前言: 未来基于Dapp的游戏可能会多起来吧, 尤其是博彩类游戏, 由于区块链匿名特性, 加之数字货币不受国家监控, 几乎成了一个法外之地. 大量游戏团队都往之涌入. 今天讲讲当前Dapp的一种游戏模 ...
- android ui更新
UI只能在主线程中更新. Handler 首先在主线程中创建handler,这样handler是附件到主线程UI中. Handler normalHandler = new Handler() { @ ...
- PHP编译安装报错:configure: error: mcrypt.h not found. Please reinstall libmcrypt
我是在CentOS6.5安装php5.5.28这个版本,PHP编译代码如下: ./configure --prefix=/usr/local/php --with-config-file-path=/ ...
- servlet的生命周期和servlet的继承关系
一.servlet的生命周期 一个servlet类的对象 加载——>实例化——>初始化——>服务——>销毁 第一次访问某个servlet的时候 首先调用其 构造函数 pub ...
- 【开发】iOS入门 - UIViewController学习笔记
iOS里面的UIViewController类似于Android里的Activity. 目前了解到除了基本的UIViewController之外,还有两个比较特别的一个是UINavigationCon ...