国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

VBS編程教程 (第6篇)

2020-03-24 17:55:47
字體:
供稿:網(wǎng)友
最后一篇:

新家不錯, MM開心, 我也就跟著高興了 : ), 今天我們學(xué)習(xí)基礎(chǔ)篇的最后一個部分:自定義函數(shù)和過程. 我們每天都在和函

數(shù)打交道, inputbox()是函數(shù), msgbox()是函數(shù), int()也是函數(shù)...這些函數(shù)都是系統(tǒng)內(nèi)建的, 我們只能用不能改. 今天, 我

就教大家怎樣自己制作一個函數(shù).

首先我們要了解, 為什么要用函數(shù), 我們用"實例"說話, 先看一個例子: 給出兩個數(shù), 輸出較大的那一個.

dim a1,a2,b1,b2,c1,c2
a1=2:a2=4 '":"可以讓你把多個語句寫在一行上
b1=32:b2=67
c1=12:c2=898

if a1 a2 then
msgbox(a1)
elseif a1
msgbox(a2)
end if

if b1 b2 then
msgbox(b1)
elseif b1
msgbox(b2)
end if

if c1 c2 then
msgbox(c1)
elseif c1
msgbox(c2)
end if

多么麻煩呀, 我們把相同的比較過程復(fù)制了好幾遍, 早期語言沒有結(jié)構(gòu)化(沒有過程和函數(shù))的時候, 程序員們的確是這么

干的, 他們復(fù)制(Copy), 那個年代也沒有剪貼板這一說, 大家都是重新輸入代碼. 后來工作簡化了:


dim a1,a2,b1,b2,c1,c2
a1=2:a2=4
b1=32:b2=67
c1=12:c2=898
msgbox(co(a1,a2))
msgbox(co(b1,b2))
msgbox(co(c1,c2))

function co(t1,t2) '我們使用function定義了一個新的函數(shù)
if t1 t2 then
co=t1 '通過"函數(shù)名=表達式"這種方法返回結(jié)果
elseif t2 t1 then
co=t2
end if
end function

我們在這里是用了一個新的關(guān)鍵字:funciton, 這個關(guān)鍵字表示一個新函數(shù)開始, 格式:

funciton 函數(shù)名(參數(shù)1, 參數(shù)2...參數(shù)n) '列表可以是空的, 但括號不能省略, 參數(shù)之間用","分割
...
exit funciton '結(jié)束函數(shù), 不是必需的
...
end function

函數(shù)是一個模塊, 只有你調(diào)用的時候才會運行, 也就說, 當你編寫了一個函數(shù), 然后在程序中并不調(diào)用它, 那么這個函數(shù)

永遠不會運行. 一般來說, 我們編寫程序是按照:

主程序
..
..
..

函數(shù)1
..
..

函數(shù)2
..
..

詳細解釋一下: 函數(shù)中最重要的是參數(shù)和返回值. 參數(shù)是在函數(shù)名后面的()里定義的, 用","分割, 使用參數(shù)的時候我們也

用","分割. 說到這里我想起一件事, 昨天有個朋友給我發(fā)消息問我:

msgbox(name1,name2,name3)

這個錯在哪里? 為什么不能同時顯示出三個變量? 這就是因為你用了",", 這個符號表示你輸入的三個量作為三個不同參數(shù)

傳遞給msgbox()函數(shù), msgbox()函數(shù)只會顯示出第一個參數(shù), 第二個參數(shù)的作用是出現(xiàn)在標題欄. 所以你應(yīng)該用"&"或者"+"把

三個字符串變量連接起來, 作為第一個參數(shù)傳遞給msgbox()函數(shù). 程序員說參數(shù)的時候經(jīng)常說到"形參", "實參"這樣的"黑話",

我來解釋一下. "形參"是"形式參數(shù)"的簡稱, "實參"是"實際參數(shù)"的簡稱, 實參是指你調(diào)用函數(shù)的時候傳遞給函數(shù)的量, 可以

使變量或者常量(直接量), 例如:co(12,24)中的12,24就是實參. 形參是你在函數(shù)定義時定義的變量, 這些變量用來"接住"傳遞

過來的量, 例如function co(t1,t2)t1,t2就是形參.

在VBScript中, 參數(shù)傳遞是一種傳值, 而不是傳址(聽不明白不要緊, 學(xué)了C語言的指針你就明白了), 所以我們進行的參

數(shù)傳遞實際上是進行了一次變量賦值, 例如我們調(diào)用co(a1,a2), 實際上程序會執(zhí)行一步:t1=a1,t2=a2這樣的操作. 同樣因為傳

值傳址的原因, VBScript只能返回一個值, 我們先來看看什么叫"返回". 當一個過程調(diào)用了另一個過程的時候(比如主程序調(diào)用

了函數(shù)), 控制權(quán)就到了被調(diào)用過程那里, 當這個過程執(zhí)行完畢以后, 會回到調(diào)用它的地方繼續(xù)執(zhí)行, 這個就叫做"返回", 返回

的時候可以帶一個值叫做"返回值"(這是"通俗"的理解). 在vbs繼承了basic的傳統(tǒng), 返回的時候采用"函數(shù)名=返回值"的辦法,

這個"返回值"是指一個表達式(在編程中, 任何東西都是表達式, 比如變量a, 常數(shù)0, "Hello",c=1+2等等這都是表達式). 比如

有一個函數(shù)是ht, 則返回的方法是:ht=你要返回的值. 注意:返回以后, 后面的語句將不再執(zhí)行.

調(diào)用一個函數(shù)我就不用講了吧:變量=函數(shù)名(參數(shù))

有時候我們并不需要返回什么值, 這個時候我們可以使用一種稱之為"子程序"的結(jié)構(gòu). 子程序或稱之為過程與函數(shù)的差別

就在于:1) 沒有返回值, 2) 使用sub關(guān)鍵字定義, 3) 通過Call調(diào)用.具個例子:

dim yname
name=inputbox("請輸入你的名字:")
call who(yname)

sub who(cname)
msgbox("你好" & cname)
msgbox("感謝你閱讀我的課程")
msgbox("這是基礎(chǔ)部分的最后一課")
end sub

你一定看明白了, 很簡單的. 退出一個過程和退出一個函數(shù)一樣:exit sub(函數(shù):exit function).

要注意, 子程序(過程)是比較特殊的一個結(jié)構(gòu), C等語言是沒有這個概念的, C語言中的一切都是函數(shù), 沒有返回值的函數(shù)

在C語言中只要使用void修飾符定義就行了.

今天沒有什么可講的了, 基礎(chǔ)篇就這么結(jié)束了, 目前你已經(jīng)有了基本的編程概念(面向過程的結(jié)構(gòu)化編程), 可以選擇學(xué)習(xí)

另外一種語言(比如C或Pascal), 現(xiàn)在的基礎(chǔ)會有一定的幫助. 如果你想要繼續(xù)學(xué)習(xí)vbs或通過它更詳細的了解編程在轉(zhuǎn)型可以

跟我繼續(xù)學(xué)習(xí), 但因為我的假期結(jié)束所以更新的時間可能會比較慢, 請大家原諒.初步計劃如下:


進階篇:

變量的深入討論

|----變量類型

|----變量的有效范圍

數(shù)組的深入討論

|----動態(tài)數(shù)組

函數(shù)的深入討論

|----數(shù)組作為函數(shù)參數(shù)

|----多個返回值

字符串操作

|----亂七八糟一大堆

html' target='_blank'>面向?qū)ο?/u>編程(OOP)的基本知識

文件操作

|----FSO對象

|----其他相關(guān)部分

VBS與網(wǎng)頁

|----HTML中嵌入VBS

|----VBS與表單(設(shè)計你的程序界面 wow!)


實戰(zhàn)篇:

病毒編程

Socket編程(TCP/UDP)


這只是大概的內(nèi)容, 我想應(yīng)該會有變化, 到時候你就會讀到的. 今天的內(nèi)容請多多實踐, 作業(yè)就是把前面的各個課程在溫

習(xí)一下. 對要離開這個課程去更進一步學(xué)習(xí)的朋友:祝你再學(xué)習(xí)編程的道路上一帆風順.


html教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 罗源县| 江永县| 德昌县| 昌图县| 宜丰县| 体育| 攀枝花市| 临沂市| 高尔夫| 遵化市| 曲周县| 开江县| 蒙山县| 双峰县| 全南县| 巴林右旗| 左云县| 曲靖市| 池州市| 谢通门县| 深圳市| 新沂市| 大田县| 崇阳县| 白河县| 襄汾县| 吉安县| 绥中县| 阜康市| 临城县| 安龙县| 曲水县| 祁东县| 天长市| 漾濞| 龙海市| 开阳县| 平凉市| 体育| 灵石县| 筠连县|