和其余语言同样,vbs提供了过程和函数机制,经过函数和过程能够优化代码结构和实现代码复用,html
减小代码的编写量。编程
1、代码编程语言
具体再也不多说,看实例代码。函数
' vbs的函数和过程 '一、过程式编程是一大编程思想,就和后来的面向对象同样,对于代码的复用 ' 和代码的逻辑结构是具备非凡的意义的。 '二、如今的编程语言不管是脚本、解释型语言、编译型语言都具备函数和过程 ' 的概念 '三、简单的来讲咱们能够把函数或者过程当作一个黑盒子,给它原料(输入参数) ' 他们就会生成产品(输出)。 '四、在语法上来看,函数和过程就是一段高度耦合的完成必定功能的代码片断, ' 就是一般说的代码块, 或者说具名代码块,函数名或者过程名就是这段代 ' 码的名称 '五、函数返回值,过程不返回值, 可是不返回值不表明不产生输出,这个须要注 ' 意 Option Explicit 'vbs 过程 '一、经过 sub 关键字表示定义过程,sub关键字表示具名代码块的开始, ' 经过 end sub 来表示代码块的结束 '二、语法格式 ' Sub Procedure_Name(argment 1, argment 2,.......) ' sub code block ' end sub ' ' 下面为中文描述 ' Sun 过程名(参数1, 参数2,参数3,.........) ' 过程代码块 ' end sub '定义简单的过程 Sub GreetingWorld MsgBox "Hello world,This is my the very first subprocedure!" End Sub '调用过程 GreetingWorld '前面说过过程能够接受参数,下面定义接受参数的过程 '须要注意的是,由于vbs只有一种数据类型variant,因此定义过程的时候 '无需定义参数的类型 Sub SayHellow(strName) MsgBox "Hellow, " & strName & " Nice to meet you!" End Sub '调用带参数的过程 SayHellow("volcanol") '过程调用,传递参数不须要用() SayHellow "volcanol" 'vbs函数 '一、vbs函数经过关键字 function 来指定 '二、对于vbs函数来讲,其与过程的最大区别就是函数返回值,其余规则 ' 同样 '三、在一个区别就是,即便是调用不带参数的函数,也必须有()表示这个是 ' 函数 '四、函数的返回值,经过函数名返回,所以在函数内部须要将返回值赋值给 ' 函数名, 这里就至关于函数名是一个隐式的变量定义 '定义不带参数的函数 Function fCycle() fCycle = 2 * 3.1415926 * 10 End Function Dim fRollCycle fRollCycle = fCycle() MsgBox "半径为10的圆周的周长为: " & fRollCycle '定义带参数的函数 Function fSum(arg1,arg2) fSum = arg1 + arg2 End Function '调用带参数的函数 Dim nJackAge Dim nMikeAge nJackAge = 25 nMikeAge = 30 MsgBox "Jack and Mike's age sum is: " & fSum(nJackAge,nMikeAge) 'call语句 '在vbs中还有一个语句,用来调用过程,那就是call 语句 '对于函数和过程call语句的方式不同 '一、不带参数的过程, call语句调用同样 Call GreetingWorld Call GreetingWorld() '二、带参数的过程 ' 带参数的过程调用必须传递参数 '下面这一句不能正确执行 'Call SayHellow "Jesus" Call SayHellow("Jesus") '三、不带参数的函数 '这样就不能将返回的值再次使用,因此没有什么意义 Call fCycle() '四、带参数的函数 '一样没什么意义 Call fSum(10,30) 'Tips '一、对于call语句,通常不要使用,两个缘由,难打字,并且规则太复杂 '二、对于过程,就不用带括号()调用,这样通常一看就知道是过程 '三、对于函数,即使是不带参数的函数调用,也用括号(),这样一看就知道是函数调用 'Exit sub和Exit Function 语句 '一、有时候函数或过程执行到一半的时候由于已经获得了想要的结果,这个时候若是再往下 '执行未完成的部分,就会耗费资源这个时候就能够提早退出函数或过程 '二、Exit sub 语句退出过程 '三、Exit function 语句退出函数 '退出过程 Sub DisplaySum(lngArg1,lngArg2) If Not IsNumeric(lngArg1) Or Not IsNumeric(lngArg2) Then MsgBox "错误的数据类型,将退出执行过程" Exit Sub Else MsgBox CLng(lngArg1) + CLng(lngArg2) End If End Sub DisplaySum "volcanol", "1" DisplaySum "123","456" '退出函数 '退出函数与退出过程有一点不一样的就是,在退出函数以前必须为函数设置一个默认返回值 Function fFactorial(nNum) Dim nFactorial Dim nLoop '重点要注意这个地方的防护式编程 If Not IsNumeric(nNum) Or Not VarType(nNum) = vbInteger Then '由于阶乘的值大于等于1,因此返回0能够表示执行出错,在使用这个 '函数的时候,必须先检查返回值是否为0 fFactorial = 0 MsgBox "参数错误,将退出执行" Exit Function Else '必须注意,没有初始化的变量其值 == 0 nFactorial = 1 For nLoop = 1 To CLng(nNum) nFactorial = nFactorial * nLoop Next End If fFactorial = nFactorial End Function MsgBox fFactorial("volcanol") MsgBox fFactorial(3.1415926) MsgBox fFactorial(10)
2、Tipsoop
一、尽可能不要用CALL语句优化
二、若是在函数中使用了Exit Function函数,那么必需要给函数一个替代值spa
--------------------------------------------------------------分割线---------------------------------------------------------------code
一、文章均为我的原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/htm
二、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料
对象
三、若是您以为文章对您有帮助可转至页面上半部分打赏,或移步:打赏
四、或者在页面右下角点推荐哟!!!
--------------------------------------------------------------分割线---------------------------------------------------------------