版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VBS編程基礎(chǔ)教程VBS編程基礎(chǔ)教程VBS編程基礎(chǔ)教程V:1.0精細(xì)整理,僅供參考VBS編程基礎(chǔ)教程日期:20xx年X月VBS編程基礎(chǔ)教程發(fā)現(xiàn)大部分朋友都不會(huì)編程,這可不是件好事,所以這次我就寫了一個(gè)簡(jiǎn)單的編程教程,講一下VBScript.主要面向菜鳥,懂得編程的朋友就不要浪費(fèi)時(shí)間了,如果你想接觸以下VBScript也可以,但既然有編程基礎(chǔ)推薦直接去找一些參考書來讀,會(huì)比較快.什么是VBScript呢VBScript的全稱是:MicrosoftVisualBasicScriptEditon.(微軟公司可視化BASIC腳本版).正如其字面所透露的信息,VBS(VBScript的進(jìn)一步簡(jiǎn)寫)是基于VisualBasic的腳本語言.我進(jìn)一步解釋一下,MicrosoftVisualBasic是微軟公司出品的一套可視化編程工具,語法基于Basic.腳本語言,就是不編譯成二進(jìn)制文件,直接由宿主(host)解釋源代碼并執(zhí)行,簡(jiǎn)單點(diǎn)說就是你寫的程序不需要編譯成.exe,而是直接給用戶發(fā)送.vbs的源程序,用戶就能執(zhí)行了.我知道菜鳥現(xiàn)在最關(guān)心的就是用什么工具來開發(fā)VBS程序了,答案是:記事本(Notepad).我不是開玩笑,其實(shí)任何一種文本編輯器都可以用來開發(fā)VBS開發(fā),只不過記事本是由系統(tǒng)自帶的,比較好找而已.盡管如此,我還是建議你去下載一個(gè)專業(yè)的文本編輯器,因?yàn)檫@些工具可以提供"語法高亮"等功能,更加方便開發(fā),用哪一個(gè)隨你喜好,我比較喜歡EditPlus.OK,我們先來寫一個(gè)VBScript程序熱熱身.REM輸入并回顯你的名字
'使用InputBox和Msgbox函數(shù)
Dimname,msg
msg="請(qǐng)輸入你的名字:"
name=Inputbox(msg,"名稱")
Msgbox(name)把上面的程序清單輸入到記事本里面,然后保存為以.vbs為擴(kuò)展名的文件("保存類型"里面選擇"所有文件").然后雙擊運(yùn)行,觀察運(yùn)行結(jié)果.注意:請(qǐng)自己輸入程序清單,不要復(fù)制->粘貼!我來解釋一下這個(gè)程序,第一行和第二行的開頭分別是"REM"語句和"'",這兩個(gè)東西的作用是相同的,表示本行是注釋行,就是說這兩行什么也不干,只是用來說明這段程序的功能,版權(quán)信息等等.注釋行是程序最重要的部分之一,盡管它不是必需的,但對(duì)于其他人閱讀源代碼,以及自己分析源代碼是很有好處的.好的習(xí)慣是在必要的地方加上清晰,簡(jiǎn)潔的注釋.Dim用來聲明一個(gè)變量,在VBS中,變量類型并不是那么重要,就是說VBS會(huì)幫你自動(dòng)識(shí)別變量類型,而且變量在使用前不一定要先聲明,程序會(huì)動(dòng)態(tài)分配變量空間.在VBS中你不用考慮name儲(chǔ)存的是一個(gè)整數(shù)還是一個(gè)小數(shù)(學(xué)名叫"浮點(diǎn)數(shù)"),也不用考慮是不是字符串(一串字符,比如:"HelloWorld"),VBS會(huì)自動(dòng)幫你搞定.所以第三行語句可以刪除,效果不會(huì)變,但我強(qiáng)烈反對(duì)這么做,一個(gè)變量的基本原則就是:先聲明,后使用.變量名用字母開頭,可以使用下劃線,數(shù)字,但不能使用vbs已經(jīng)定義的字,比如dim,也不能是純數(shù)字.下一行被稱之為"賦值","="是賦值符號(hào),并不是數(shù)學(xué)中的等于號(hào),盡管看起來一樣.這是正統(tǒng)的理解,你要理解成等于也沒有什么不可.賦值號(hào)的左邊是一個(gè)變量,右邊是要賦給變量的值,經(jīng)過賦值以后,msg這個(gè)變量在程序中等同于"請(qǐng)輸入你的名字:"這個(gè)字符串,但當(dāng)msg被再次復(fù)制的時(shí)候,原值就會(huì)消失.不光字符串,其他任何變量都這樣被賦值,例如:a=2,b=等等.再往下,Inputbox和Msgbox是VBS內(nèi)建的函數(shù),一個(gè)函數(shù)就相當(dāng)于一個(gè)"黑箱",有輸入(參數(shù))和輸出(返回值),你可以不用了解函數(shù)是怎么運(yùn)作的,只要了解這個(gè)函數(shù)能干什么就行了,我們也可以定義自己的函數(shù),不過那要等到以后再講.現(xiàn)在我們只要了解,一個(gè)函數(shù)可以有返回值也可以沒有,可以有參數(shù)也可以沒有.例如Inputbox就是有返回值的函數(shù),我們用賦值號(hào)左邊的變量來"接"住InputBox的返回值--就是你輸入的內(nèi)容.在inputbox右邊的括號(hào)里是參數(shù)列表,每個(gè)參數(shù)用","分隔開,每個(gè)參數(shù)有不同的功效,比如第一個(gè)參數(shù)會(huì)顯示在提示里,我們把msg這個(gè)變量作為第一個(gè)參數(shù)傳給了Inputbox函數(shù),而msg="請(qǐng)輸入你的名字:",所以我們?cè)趯?duì)話框的提示欄就會(huì)看到"請(qǐng)輸入你的名字:"第二個(gè)參數(shù)是對(duì)話框的標(biāo)題,我們用直接量(學(xué)名叫"常量",這里是"字符串常量")傳遞給函數(shù),當(dāng)然你也可以傳遞變量.Inputbox還有很多參數(shù),比如你在"名稱"后面再加一個(gè)","然后輸入隨便一串字符(字符串,用雙引號(hào)""包裹起來的一串字符叫做字符串)然后運(yùn)行,看看結(jié)果.你會(huì)發(fā)現(xiàn)用于輸入的文本框有了默認(rèn)的值,這就是第三個(gè)參數(shù)的作用.
Msgbox函數(shù)是用來輸出的函數(shù),在VBS中沒有專門的輸出函數(shù)(BASIC中的print,C中的printf),所以我們只能用對(duì)話框來觀察輸出結(jié)果,Msgbox的必要參數(shù)只有一個(gè),就是要輸出的內(nèi)容,在這種情況下,我們不需要理會(huì)msgbox的返回值.關(guān)于Msgbox和Inputbox我們以后還會(huì)在討論,今天只是熱熱身,到此為止.
要點(diǎn):1)注釋(以REM或'開頭)行在程序中不起作用,但能讓別人更容易讀懂你的程序.2)變量好像一個(gè)盒子,或一個(gè)代號(hào),可以代表你想代表的東西.變量賦值使用"="3)以""包裹起來的字符稱之為"字符串"4)函數(shù)像一個(gè)"黑箱",有參數(shù)和返回值,用"="左邊的變量可以接住返回值5)Inputbox函數(shù)彈出一個(gè)輸入對(duì)話框,Msgbox則用于輸出
作業(yè):1)試驗(yàn)Inputbox的第三個(gè)參數(shù)2)寫一段程序輸出你的年齡3)寫一段程序進(jìn)行3次輸入,分別輸入你和你父母的姓名(要求顯示提示),并分3次輸出
第二篇:我真沒想到,第一次的作業(yè)竟然有人不會(huì).看來要講的非常非常細(xì)致才行,嗯,今天講各種"量"和基本運(yùn)算先說常量,這個(gè)比較簡(jiǎn)單.什么是常量呢,常量就是其值不可變化的量.常量分為兩種:第一種,自然常量.這叫是因?yàn)樗鼈儽旧砭褪浅A?你怎么更改21的值呢他永遠(yuǎn)都是21,不可能變成46如果你在程序中使用"21=46",這樣的語句將會(huì)引發(fā)一個(gè)錯(cuò)誤.同樣的,字符串也是常量(還記得字符串嗎就是包裹在""之間的一串字符),"HelloWorld"就是一個(gè)例子,如果你使用"HelloWorld"="Bye"這樣的語句同樣會(huì)引發(fā)一個(gè)錯(cuò)誤.你能舉出自然常量的更多例子嗎第二種,是我們自己定義的常量,這種量也使用代號(hào),他們也被賦值,但和變量的不同點(diǎn)在于,他們?cè)诙x的時(shí)候被賦值,以后就不能改變了,如果企圖改變將會(huì)引發(fā)一個(gè)錯(cuò)誤.定義一個(gè)變量,我們使用"const"這個(gè)關(guān)鍵字(關(guān)鍵字的意思是系統(tǒng)定義了有特殊功能的字,不能作為變量名或常量名使用),格式是:const常量名=常量值.例如:constPI=constNAME="記憶碎片"這樣我們就定義了兩個(gè)常量,PI和NAME,一般說來,常量名全部使用大寫,但也可以不用,隨你喜好.將一些在程序中不需要改變的值定義為常量是個(gè)好習(xí)慣,這樣能防止不必要的意外.另外,使用自定義常量也可以減少你的工作量.比如:msgbox("HelloWorld")
msgbox("HelloWorld")
msgbox("HelloWorld")
msgbox("HelloWorld")
msgbox("HelloWorld")這個(gè)程序輸出五次HelloWorld,如果你想要改變輸出為Bye-Bye,就必須修改全部程序,當(dāng)然你可以手動(dòng)修改5次,但如果你要輸出1000次呢常量就可以替我們解決這個(gè)問題:consthw="HelloWorld"
msgbox(hw)
msgbox(hw)
msgbox(hw)
msgbox(hw)
msgbox(hw)這樣當(dāng)你要修改輸出的時(shí)候只要修改hw的值就行了.好了,現(xiàn)在我們來看看編程的第一塊重要"基石":變量.解釋變量最好的辦法我覺得是"盒子",一個(gè)變量好像一個(gè)盒子,里面只能裝一個(gè)東西,當(dāng)你要裝進(jìn)去別的東西的時(shí)候必須把原有的東西拿出來.這個(gè)"盒子"是有名稱的,當(dāng)你在程序中使用變量的時(shí)候,系統(tǒng)會(huì)打開盒子取出里面的東西,讓這些東西參與處理,而不是盒子.有些語言是很依賴"盒子"里面裝些什么東西,這樣才能找到合適的"盒子"(比如C語言),但VBS給我提供的是能夠自動(dòng)伸縮的"魔術(shù)盒",我們不用關(guān)心裝進(jìn)去的是什么東西,
VBS會(huì)自動(dòng)調(diào)整盒子的大小.例如:Dima1,a2,a3
a1=14
a2=
a3="Hello"而不用像C語言那樣麻煩:或者是VB的正規(guī)聲明(VB可以聲明也可以不用)那樣:inta1;Dima1asinteger
floata2;Dima2asDouble
char*a3;Dima3asstrnig
a1=14;a1=14
a2=;a2=
a3="Hello";a3="Hello"嗯……扯遠(yuǎn)了……變量有什么用呢哇,那用處可大了.最簡(jiǎn)單,你并不能確定程序運(yùn)行時(shí)變量的值,比如前一節(jié)課我們編的輸入姓名的程序,你不能確定InputBox返回的是什么(還記得Inputbox的返回值嗎就是你輸入的內(nèi)容),所以你就沒有辦法應(yīng)對(duì)各種情況,但我們用name這個(gè)"盒子"把用戶的名字裝起來,到用的時(shí)候我們只要知道name這個(gè)盒子的名字就行了,系統(tǒng)會(huì)自己打開他并把里面的內(nèi)容拿出來用.再舉個(gè)例子,我們編寫一個(gè)程序計(jì)算一個(gè)矩形的面積,比如這個(gè)程序要發(fā)給小學(xué)生使用:dima,b,s
a=15
b=12
s=a*b
msgbox(s)這樣就可以求出長(zhǎng)為15,寬為12的矩形的面積了,是不是很簡(jiǎn)單當(dāng)然,這個(gè)程序也可以這樣寫:dims
s=15*12
msgbox(s)這樣看起來程序短了許多,也節(jié)約內(nèi)存,但并不是鼓勵(lì)的做法,為什么請(qǐng)看下面.現(xiàn)在,我們的程序要變得像點(diǎn)樣子才行,誰的程序?qū)懗鰜磉€要?jiǎng)e人修改源代碼才能用啊所以,我們要接受用戶的輸入,還記得嗎InputBox函數(shù).修改后程序如下:dima,b,s
a=inputbox("請(qǐng)輸入矩形的長(zhǎng):")
b=inputbox("請(qǐng)輸入矩形的寬:")
s=a*b
msgbox(s)ok,這么一修改,無論用戶輸入怎樣的數(shù)據(jù),我們都能計(jì)算出矩形的面積了.如果你用s=15*12能改嘛當(dāng)然不行.我想你已經(jīng)發(fā)現(xiàn)了,vbs中的數(shù)學(xué)計(jì)算和真正的算術(shù)沒有什么不同,+,-,*,/,(),[],{}都是一樣的用法,比如:dimans
ans=12+32/4+[(23-10)*2]
msgbox(ans)四則運(yùn)算的法則在編程中同樣生效,你可以在編程中重新獲得小學(xué)時(shí)候的樂趣(你恨數(shù)學(xué)那就別學(xué)電腦了).在編程中有一個(gè)有趣的運(yùn)算符是"mod",這個(gè)運(yùn)算符叫做"取余運(yùn)算符",就是取得一次除法的余數(shù),例如dima
a=16mod5你知道a等于幾嗎Bingo!沒錯(cuò),就是1.因?yàn)?6/5=3....1,所以mod計(jì)算的結(jié)果就是1.還有一個(gè)運(yùn)算符是"^"(就是鍵盤"6"上面的小箭頭),他表示"乘冪"(或者是"方")比如:dima,b,c
a=2
b=a^2
c=a^3
msgbox(a)
msgbox(c)則b=a*a=4,c=a*a*a=8我們一次不要講太多,這次就講到這里,現(xiàn)在總結(jié)一下.要點(diǎn):1)常量分為自然常量和自定義常量,常量的值不可修改2)變量就像盒子,我們不在乎盒子里裝的是什么,但一定要知道盒子的名字3)四則運(yùn)算在編程中沒有任何不同4)MOD是取余運(yùn)算
作業(yè):1)編一個(gè)程序,計(jì)算圓形的面積,半徑由用戶給出(使用Inputbox)PI取值2)編一個(gè)程序取得20/3的余數(shù)
第三篇(共六篇):
首先,我來解決一下上次課程的幾個(gè)疑問第一,那個(gè)余數(shù)問題,16/5=3...1,是因?yàn)槲腋倪^前面的部分,后面的忘了改了,不好意思.
第二,請(qǐng)看一下程序清單:1)
Dima,b,c
a=inputbox("a是:","輸入半徑")
b=Inputbox("b是:","輸入半徑")
c=a*2+b*2
Msgbox(c)
這個(gè)輸入1、2時(shí)是62)
Dima,b,c
a=inputbox("a是:","輸入半徑")
b=Inputbox("b是:","輸入半徑")
c=(a+b)*2
Msgbox(c)
這個(gè)輸入1、2時(shí)是24為什么會(huì)不一樣呢在數(shù)學(xué)上c=(a+b)*2和c=a*2+b*2是等價(jià)的,在VBS中也是如此.問題出在"+"上,在VBS中,+不僅僅是加號(hào)的意思還表示把兩個(gè)字符串連接起來,例如"Hello"+"World"="HelloWorld"haveyouunderstood你還記得InoutBox函數(shù)的返回值嗎是字符串!這就看出問題了吧,在編程中"1"不等于(<>)1,"1"是一個(gè)字符,而1是一個(gè)數(shù),所以a,b都是字符串變量,"1"+"2"="12",這就好像我們小時(shí)跟伙伴開玩笑問他們1+1=一樣,我們總是笑著說"錯(cuò)啦,應(yīng)該是11".但為什么,a可以*2卻不發(fā)生錯(cuò)誤呢這時(shí)VBS比較智能的一個(gè)表現(xiàn),如果這個(gè)字符串的內(nèi)容是一個(gè)數(shù)且對(duì)他進(jìn)行數(shù)學(xué)運(yùn)算,則把字符串強(qiáng)制轉(zhuǎn)換成數(shù)參與運(yùn)算,如果字符串代表一個(gè)數(shù),但不參加數(shù)學(xué)運(yùn)算,而是參加字符串運(yùn)算(合并)則當(dāng)作字符串處理,所以你看到a+b=12,這時(shí)候a+b的結(jié)果(12)是一個(gè)字符串,當(dāng)它要乘以2的時(shí)候就被強(qiáng)制轉(zhuǎn)換成了數(shù)字12,這樣我就得到了結(jié)果24.怎么修改這個(gè)程序呢我們需要用到另一個(gè)內(nèi)建的函數(shù):int,int函數(shù)的功能是將輸入值轉(zhuǎn)化成整數(shù)值,我們這樣修改:c=(int(a)+int(b))*2這個(gè)意思就是把a(bǔ)作為參數(shù)傳遞給int函數(shù),int函數(shù)就會(huì)返回那個(gè)整數(shù)(你的輸入值),然后讓返回值參與運(yùn)算,這樣就得到了正確答案.所以,以后如果你用的是inputbox函數(shù)的話,最好用int語句加工一下:比如c=int(c)'c是你自己的變量大家是不是覺得這個(gè)課程有點(diǎn)枯燥,呵呵,變量和運(yùn)算符部分的確是這樣的,不過多多練習(xí)也就好了,這次,我們寫寫真正好玩的東西:流程控制語句.這個(gè)部分開始才是真正的編程.首先介紹判斷結(jié)構(gòu).
在此之前,我們先介紹一種簡(jiǎn)單的變量類型:布爾值(Boolean),這種變量只有兩個(gè)可能值:True,Flase,即真或假.這種變量在某些情況下很有用(比如"開關(guān)").我們定義一個(gè)bool變量的方法和其他變量一樣,賦值也一樣,例如:dima,b
a=true
b=false注意,true和"true"是不一樣的,"true"是字符串,true是布爾值,千萬不能混淆.回到if語句上來,我們先來看看簡(jiǎn)化版的if語句:if判斷式then語句體我們來看一個(gè)例子:dima,b
a=12
b=13
ifb>athenmsgbox("B大于A")我們只看最后一行,a>b這個(gè)式子(表達(dá)式)有一個(gè)返回值,是bool型的.因?yàn)檫@個(gè)式子只有兩種可能:b大于a,b不大于a,所以這個(gè)式子也只有兩種可能性,即真或者假.if語句判斷這個(gè)表達(dá)式的返回值是真還是假,如果是真(true)則執(zhí)行then后面的語句,如果是假,則不執(zhí)行,你把a(bǔ)的值改成14看看還會(huì)不會(huì)彈出對(duì)話框當(dāng)我們要在判斷之后執(zhí)行多行語句怎么辦呢,我們需要用語句塊來解決,在這里可以叫塊ifdima,b
a=12
b=13
ifa<bthen
msgbox("A小于B")
msgbox("B大于A")
endif兩個(gè)msgbox函數(shù)夾在if和endif之間,這個(gè)部分就是語句塊,塊里的每一條語句之前請(qǐng)空出4--8(一個(gè)<Tab>鍵)個(gè)格,這不是必需的,但是是一個(gè)好習(xí)慣,以便看清楚程序的結(jié)構(gòu).這樣我們就能運(yùn)行多于一個(gè)的語句,請(qǐng)注意if...then...endif這三個(gè)關(guān)鍵部分不要掉了.OK,我出一個(gè)題,輸入一個(gè)數(shù),如果小于100就輸出"錯(cuò)誤",如果大于100就輸出"正確",我這里有兩個(gè)程序版本:
dima
a=inputbox("請(qǐng)輸入一個(gè)大于100的數(shù)")
a=int(a)'inputbox返回的是字符串,我們把他變成整數(shù):)
ifa>100thenmsgbox("正確")
ifa<100thenmsgbox("錯(cuò)誤")還有一個(gè)更簡(jiǎn)單的dima
a=inputbox("請(qǐng)輸入一個(gè)大于100的數(shù)")
a=int(a)'inputbox返回的是字符串,我們把他變成整數(shù)
ifa>100then
msgbox("正確")
else
msgbox("錯(cuò)誤")
endif看到多了一個(gè)else了吧,else的作用就是當(dāng)要判斷的表達(dá)式為false時(shí)執(zhí)行的.這樣程序就可以處理兩種不同的情況了.不要忘了用endif結(jié)尾嘿嘿,我是變態(tài)者,現(xiàn)在我要你處理三種情況,<100,=100,>100,還要寫在一個(gè)if結(jié)構(gòu)里,你怎么辦,我給你答案:dima
a=inputbox("請(qǐng)輸入一個(gè)大于100的數(shù)")
a=int(a)'inputbox返回的是字符串,我們把他變成整數(shù)
ifa>100then
msgbox("正確")
elseifa=100then
msgbox("老大,你耍我")
else
msgbox("錯(cuò)誤")
endif這次輸入100看看,是什么elseif語句可以在if結(jié)構(gòu)中多次出現(xiàn),以靈活判斷不同的情況(如果你要判斷得太多,就請(qǐng)使用"選擇結(jié)構(gòu)",過會(huì)兒就講),當(dāng)所有elseif都處理完了,而沒有符合情況的時(shí)候再執(zhí)行else中的語句.另一個(gè)例子:Dima,b,c,d
a=inputbox("a是:","輸入半徑")
b=Inputbox("b是:","輸入半徑")
d=Inputbox("答案:","輸入答案")c=a*2+b*2'這里沒有問題,會(huì)自動(dòng)轉(zhuǎn)換
ifd=cthen
Msgbox("你好聰明")
else
Msgbox("你好豬頭自己的題還不會(huì)!")
endif再看看這個(gè),無論你回答得多么正確你都是豬頭,哈哈,不是我耍你,還是文章開始時(shí)候的inputbox的返回類型在耍你,d是inputbox的返回值,他是一個(gè)字符串,而c是一次整數(shù)計(jì)算的結(jié)果,他是一個(gè)整數(shù).一個(gè)字符串無論如何也不等于一個(gè)整數(shù),盡管他們字面上是一樣的:"8"<>(不等于號(hào))8所以if的判斷式的值永遠(yuǎn)是false,總是執(zhí)行else部分的語句.我們可以這么修改Dima,b,c,d
a=inputbox("a是:","輸入半徑")
b=Inputbox("b是:","輸入半徑")
d=Inputbox("答案:","輸入答案")
d=int(d)
'在這里我們?nèi)〕隽薲的值,變成整數(shù),在放回"d"這個(gè)盒子里
c=a*2+b*2
ifd=cthen
Msgbox("你好聰明")
else
Msgbox("你好豬頭自己的題還不會(huì)!")
endif這樣就成功了.這也是Inputbox函數(shù)的一個(gè)討厭的地方,沒辦法,vbs沒有其他好的輸入方式了.說到if,我們不得不說一說邏輯運(yùn)算符,今天介紹兩種,"and"和"or"學(xué)會(huì)了if語句之后,我舉一個(gè)例子,你一看就明白了.dima,b
a=inputbox("輸入一個(gè)數(shù)>10")
b=inputbox("輸入另一個(gè)數(shù)>10")
a=int(a)
b=int(b)
ifa>10andb>10then
msgbox("正確")
else
msgbox("錯(cuò)誤")
endif這段程序讓你輸入兩個(gè)值,必須都大于10,只要有一個(gè)不大于,就輸出錯(cuò)誤dima,b
a=inputbox("輸入一個(gè)數(shù)>10")
b=inputbox("輸入另一個(gè)數(shù)>10")
a=int(a)
b=int(b)
ifa>10orb>10then
msgbox("正確")
else
msgbox("錯(cuò)誤")
endif
這段程序讓你輸入兩個(gè)值,只要有一個(gè)大于10,就返回成功.其實(shí)and和or很好理解,我讀"ifa>10orb>10then"這一句,用華語是這樣:"如果a大于10或者b大于10,那么...".這樣是不是就很好理解了呢.OK,我們?cè)賮砜匆环N新結(jié)構(gòu),今天的課就結(jié)束,已經(jīng)午夜了,我都累死了.當(dāng)你的程序要處理很多種不同的判斷情況的時(shí)候elseif..then會(huì)讓程序看起來很雜亂,所以就有了一種selectcase結(jié)構(gòu)專門對(duì)付這種情況,selectcase的語法結(jié)構(gòu)很簡(jiǎn)單:selectcase變量名
case值
語句
case值
語句
caseelse
語句
endselect
我們舉個(gè)例子就能很簡(jiǎn)單的說明:dima
a=inputbox("輸入一個(gè)1--3的值")
a=int(a)'處理inputbox返回字符串的問題
selectcasea
case1
msgbox("壹")
case2
msgbox("貳")
case3
msgbox("叁")
caseelse
msgbox("輸入錯(cuò)誤")
endselect這個(gè)例子把1,2,3這三個(gè)阿拉伯?dāng)?shù)字轉(zhuǎn)化成中國(guó)大寫數(shù)字,這個(gè)程序?qū)懗蒳f...elseif的形式如下dima
a=inputbox("請(qǐng)輸入1--3的值")
a=int(a)
ifa=1then
msgbox("壹")
elseifa=2then
msgbox("貳")
elseifa=3then
msgbox("叁")
else
msgbox("輸入錯(cuò)誤")
endif怎么樣,麻煩吧,還是select好吧.OK,今天到此結(jié)束,總結(jié)一下:
要點(diǎn):1)inputbox返回的是一個(gè)字符串,而不是一個(gè)數(shù),必須用a=int(a)這種形式轉(zhuǎn)化成數(shù)2)bool變量的值只有兩種:true,falseand兩邊的表達(dá)式都是true,則返回true.or兩邊的表達(dá)式有一個(gè)是true,就返回true3)if語句的格式4)select...case的格式
作業(yè):1)使用3個(gè)bool值,儲(chǔ)存你的3兄弟姐妹是否是男性(提示:sister1male=false)2)給定一個(gè)個(gè)數(shù),大于10而且小于20輸出"正確",否則輸出"錯(cuò)誤"3)輸入12,或者15,輸出"正確",否則輸出"錯(cuò)誤"4)把5以內(nèi)的正整數(shù)都轉(zhuǎn)換成中國(guó)大些數(shù)字5)自己隨便設(shè)計(jì)一個(gè)程序,應(yīng)用今天的知識(shí)四篇(共六篇):
大家好,昨天我休息了一天,所以今天寫第4章:循環(huán)結(jié)構(gòu)我們先來看一道題:商場(chǎng)進(jìn)行每日結(jié)算,要求累加出今天的營(yíng)業(yè)額,每次輸入一個(gè)數(shù),這道題其實(shí)很簡(jiǎn)單,但就我們現(xiàn)在學(xué)過的知識(shí)要完成這道題相當(dāng)麻煩,我們來分析一下.首先,我們需要知道買賣的次數(shù),這樣才能控制輸入的次數(shù),但是,這種設(shè)計(jì)是非常低效的,每天都要重新設(shè)計(jì)程序.假定今天進(jìn)行了5次交易,以下是源程序:dimsum
sum=0'初始化變量
sum=sum+int(inputbox("請(qǐng)輸入交易額"))
'sum=sum+x這種形式是把本身的值取出來,進(jìn)行一次運(yùn)算,再放回本身,這種方法很有用處
'這里使用了函數(shù)嵌套,把inputbox的返回值直接傳給int函數(shù),轉(zhuǎn)化成整數(shù),下同
sum=sum+int(inputbox("請(qǐng)輸入交易額"))
sum=sum+int(inputbox("請(qǐng)輸入交易額"))
sum=sum+int(inputbox("請(qǐng)輸入交易額"))
sum=sum+int(inputbox("請(qǐng)輸入交易額"))
msgbox(sum)看到了嗎,我通過把計(jì)算過程復(fù)制了5遍才設(shè)計(jì)好了程序,這種程序在汽車交易所等交易次數(shù)少的地方還能湊合著用,如果放到超市豈不是要復(fù)制,粘貼幾千遍我們今天講的內(nèi)容就可以克服這種缺陷,首先,我們來講以下Do...Loop語句.do...loop的結(jié)構(gòu)看上去非常簡(jiǎn)單,就是:do...loop,僅此而已,這個(gè)結(jié)構(gòu)不斷執(zhí)行do和loop之間的語句(學(xué)名叫:循環(huán)體),
永不停止.舉個(gè)例子來說:do
msgbox("這個(gè)信息會(huì)不斷重復(fù)出現(xiàn),要停止程序請(qǐng)使用任務(wù)管理器(Ctrl+Alt+Del)中止wscript進(jìn)程")
loop運(yùn)行這個(gè)程序,當(dāng)你點(diǎn)銷掉一個(gè)對(duì)話框馬上會(huì)出來另一個(gè),你永遠(yuǎn)點(diǎn)不完,總有下一個(gè).誰會(huì)運(yùn)行這樣的程序除非是給別人搗亂(我就干過這種事),所以在do..loop結(jié)構(gòu)中還有一個(gè)語句:exitdo,這個(gè)語句將終止循環(huán),跳到loop后面的語句繼續(xù)執(zhí)行.據(jù)個(gè)例子來說:dima'注意:常量不需要在dim里面聲明,否則會(huì)引發(fā)錯(cuò)誤
constpass="123456"'這是一個(gè)字符串請(qǐng)用""包裹起來.設(shè)定密碼為常量,不可變更
do
a=inputbox("請(qǐng)輸入密碼")
ifa=passthen
msgbox("密碼校驗(yàn)成功")
exitdo
endif
loop這個(gè)程序會(huì)一直不停的問你密碼,知道你輸入了正確的密碼為止.(if可以嵌套在另一個(gè)if當(dāng)中,也可以嵌套在循環(huán)體當(dāng)中,所以一定要用縮進(jìn),來分清楚程序的各個(gè)部分).這個(gè)程序是很經(jīng)典的,早期的程序都是這么做的.但是我們是Hacker,所以我們了解系統(tǒng)的安全性,這種無限次認(rèn)證程序很容易被窮舉破解,我們要來限定認(rèn)證的次數(shù).修改程序如下dima,ctr
ctr=0'設(shè)置計(jì)數(shù)器
constpass="pas123_"'上面的那個(gè)是弱密碼,這次改的強(qiáng)一點(diǎn)
do
ifctr=3then
msgbox("已經(jīng)達(dá)到認(rèn)證上限,認(rèn)證程序關(guān)閉")
exitdo
else
a=inputbox("請(qǐng)輸入密碼")
ifa=passthen
msgbox("認(rèn)證成功")
msgbox("(你可以在這里加一段成功后得到的信息)")
exitdo
else
ctr=ctr+1'如果密碼出錯(cuò)就增加一次錯(cuò)誤認(rèn)證計(jì)數(shù)
msgbox("認(rèn)證出錯(cuò),請(qǐng)檢查密碼")
endif
endif
loop運(yùn)行這個(gè)程序試試看,當(dāng)你出了3此錯(cuò)誤以后,就會(huì)停止再次詢問密碼,關(guān)閉程序.telnet認(rèn)證用來限制次數(shù)的程序與此大同小異.要注意的是嵌套的if語句,清仔細(xì)讀一下這個(gè)程序,可能比較難懂,也請(qǐng)你試著自己設(shè)計(jì)一下類似的程序.其實(shí),要在do...loop加上驗(yàn)證的功能,并不一定要用if,我們可以直接利用do.我來介紹一下while關(guān)鍵字,while可以放
在do或者是loop后面,然后再接一個(gè)表達(dá)式,當(dāng)表達(dá)式的值為true的時(shí)候(表達(dá)式成立),才運(yùn)行循環(huán)體.我們來看一下修改后的
程序"dima,ctr
ctr=0
constpass="pas123_"
dowhilectr<3
a=inputbox("請(qǐng)輸入密碼")
ifa=passthen
msgbox("認(rèn)證成功")
msgbox("(你可以在這里加一段成功后得到的信息)")
exitdo
else
ctr=ctr+1'如果密碼出錯(cuò)就增加一次錯(cuò)誤認(rèn)證計(jì)數(shù)
msgbox("認(rèn)證出錯(cuò),請(qǐng)檢查密碼")
endif
loopdima,ctr
ctr=0
constpass="pas123_"
do
a=inputbox("請(qǐng)輸入密碼")
ifa=passthen
msgbox("認(rèn)證成功")
msgbox("(你可以在這里加一段成功后得到的信息)")
exitdo
else
ctr=ctr+1'如果密碼出錯(cuò)就增加一次錯(cuò)誤認(rèn)證計(jì)數(shù)
msgbox("認(rèn)證出錯(cuò),請(qǐng)檢查密碼")
endif
loopwhilectr<3功能是一樣的,為什么要放在loop后面呢你把ctr的值改成3就知道了,while在do后面的程序會(huì)直接退出,而在loop后面還會(huì)允許一次認(rèn)證,到了loop才結(jié)束.和while相反的是until,用法和while一樣,不過他只有當(dāng)后面的表達(dá)式的值為false(表達(dá)式不成立)的時(shí)候才執(zhí)行循環(huán)體,請(qǐng)自己試驗(yàn)一下ok,我們來看另外一種循環(huán)結(jié)構(gòu),for....next,這種循環(huán)結(jié)構(gòu)是基于計(jì)數(shù)的,也是在編程中最常見到的循環(huán)結(jié)構(gòu).dimi
fori=0to5
msgbox(i)
next看到了嗎每次輸出的i都是遞增的,但我們沒有明確指出i要遞增,當(dāng)i達(dá)到5的時(shí)候,循環(huán)就結(jié)束了,因?yàn)橛?開始,所以循環(huán)體執(zhí)行了6次,這一點(diǎn)很重要,大部分東西都是從0開始而不是1.這個(gè)程序也可以寫成do的形式:dimi
i=0
dowhilei<5
msgbox(i)
i=i+1'因?yàn)閐o不能自動(dòng)計(jì)數(shù),必須手動(dòng)加
loop怎么樣,還是for比較好用吧.for在編程中很有用途,我們?cè)倥e一個(gè)例子,順便講一下嵌套循環(huán).dimi,j
fori=1to9
fori=1to9
str=str&i*j&""'&是和并字符串的符號(hào)
next'每個(gè)next對(duì)應(yīng)一個(gè)for
next看看運(yùn)行結(jié)果,是否令你會(huì)想起小學(xué)時(shí)代的數(shù)學(xué)老師(丑陋的嘴臉).要注意,這里有一個(gè)"大"的for,和一個(gè)小的for,當(dāng)小的for執(zhí)行完一個(gè)周期以后,大的for才執(zhí)行一次(換句話說,大的for執(zhí)行一次,小的要執(zhí)行9次),所以一共執(zhí)行了九九八十一次.在大的for里可以不僅僅是一個(gè)小的for,也可以加上另外的語句.我們來修改一下源程序:dimi,j
fori=1to9
fori=1to9
str=str&i*j&""
next'每個(gè)next對(duì)應(yīng)一個(gè)for
str=str&vbCrlf'vbCrlf相當(dāng)于鍵盤上的回車鍵,因?yàn)槟悴荒茉阪I盤上輸入,所以系統(tǒng)定義了一個(gè)默認(rèn)的常量
next這次運(yùn)行完成以后,輸出結(jié)果按照乘數(shù)進(jìn)行了分割,每小for運(yùn)行完一次,就換一行(通過vbcrlf).這次的內(nèi)容對(duì)菜鳥可能比較難懂,掌握的辦法只有一個(gè):多實(shí)踐.另外,我在論壇看到很多人還是問:"VBScript要用什么工具編"我就很氣憤,我在第一篇里面已經(jīng)說明:用記事本編輯源代碼,然后保存為以.vbs為擴(kuò)展名的程序就可以了,請(qǐng)大家不要再問.另外,國(guó)產(chǎn)的一種垃圾軟件"超級(jí)X霸"搶占了vbs這個(gè)擴(kuò)展名,請(qǐng)把那個(gè)垃圾卸載掉.我們總結(jié)一下:要點(diǎn):1)do..loop和exitdo的用法2)while當(dāng)表達(dá)式true的時(shí)候執(zhí)行循環(huán)體,until反之3)for...next是計(jì)數(shù)循環(huán),每次執(zhí)行計(jì)數(shù)器遞加4)嵌套循環(huán)的作用和寫法&用于連接字符串5)vbCrLf相當(dāng)于鍵盤上的回車鍵
作業(yè):1)在我國(guó)的數(shù)學(xué)經(jīng)典著作"九章算術(shù)"中有這樣一道題:百錢買百雞,公雞5錢一只,母雞3錢一只,小雞1錢2只(這個(gè)數(shù)據(jù)我是參考一本編程書的,但我記得是公3,母1,小1錢3只不管了,就按照書上得來吧)求得是能有多少種辦法買這些雞.如果看不懂的話我用大白話說說:有人要去買雞,用100塊錢正好買了100只雞,價(jià)格如下:公:5$,母:3$,小:1$for2,讓你求一共多少種賣法(公母小怎么搭配).請(qǐng)用循環(huán)解決這個(gè)問題.ps:今天要去移民局辦事,所以文章寫的很倉(cāng)促.大部分代碼都沒有實(shí)驗(yàn),請(qǐng)大家?guī)臀艺义e(cuò).另外,上次的作業(yè)大家在論壇應(yīng)該看到了,我就不重復(fù)答案了,不知道大家喜歡做這種題,還是以前那種比較簡(jiǎn)單的第五篇(共六篇):
請(qǐng)?jiān)试S我縣描述一下我現(xiàn)在的環(huán)境:氣溫高達(dá)37攝氏度,而我忘記了圖書館開門的時(shí)間,還要在這里站上一個(gè)小時(shí),在熱帶植物的包裹下,各種奇怪的小飛蟲圍著我轉(zhuǎn)來轉(zhuǎn)去.不過令我欣慰的是,終于寫到五了,還有兩課我們的"基礎(chǔ)篇"就要結(jié)束了.今天我們來了解語言本身的最后一個(gè)論題:數(shù)組.要理解"數(shù)組",這個(gè)概念我覺得另一種翻譯對(duì)學(xué)習(xí)來說更加容易:"陣列",沒錯(cuò),數(shù)組就是一個(gè)陣列,一個(gè)數(shù)據(jù)的陣列.最簡(jiǎn)單的例子是數(shù)據(jù)庫系統(tǒng),假設(shè)你要儲(chǔ)存20名學(xué)生的英語成績(jī),如果不是用數(shù)組,你則要?jiǎng)?chuàng)建20個(gè)不同的變量,累死.數(shù)組就是類型相同(重要!)的一組數(shù)據(jù)(或者n組),用來儲(chǔ)存相關(guān)的量,最簡(jiǎn)單的數(shù)組是一維數(shù)組,我們就先來學(xué)習(xí)它吧.什么是一維數(shù)組呢在3維以下,你可以利用幾何知識(shí)來理解"維"的概念,一維相當(dāng)于一條線,二維則是一個(gè)矩形,三維是一個(gè)長(zhǎng)方體.我知道這么講是很抽象的,我們先舉個(gè)一維數(shù)組的例子就比較容易了解了.dima(9)'從零開始
fori=0to9
a(i)=i'填充每一個(gè)數(shù)組元素
msgbox(a(i))'輸出數(shù)組元素
next我們可以看到,定義一個(gè)數(shù)組的方法和定義一個(gè)變量沒有什么不同,同樣是使用dim語句.定義一維數(shù)組的方法如下:dim數(shù)組名(元素?cái)?shù)量),這里大家要注意一點(diǎn),這里定義的元素?cái)?shù)量總是比你要的要少一個(gè),因?yàn)橐粋€(gè)數(shù)組的起點(diǎn)是0號(hào)數(shù)據(jù)而不是1,所以大家一定要小心:你需要10個(gè)數(shù)據(jù),就定義"9",需要100個(gè)就定義99,依此類推.數(shù)組的元素可以看成一個(gè)個(gè)獨(dú)立的變量,你可以像獨(dú)立的變量那樣使用他們.數(shù)組元素的量可能是毫無關(guān)系的,比如第一個(gè)數(shù)組元素儲(chǔ)存你的年齡,第二個(gè)儲(chǔ)存今年西瓜的銷售量,但這種做法是不鼓勵(lì)的,甚至是不被接受的,不要這么干,這樣的情況請(qǐng)定義獨(dú)立的變量.for語句在數(shù)組中可算是大顯身手,還記得for嗎它累加一個(gè)變量,我們可以把這個(gè)變量應(yīng)用在數(shù)組中正好用來讀取或者填充按照順序排列的數(shù)組元素,上面就是這樣一個(gè)例子.數(shù)組其實(shí)是很簡(jiǎn)單的東西(再BASIC語言里面),數(shù)組難的是怎么搗弄這些循環(huán),讓他們按照你的要求運(yùn)轉(zhuǎn).這個(gè)等到二維數(shù)組再說,我們先看看如何手工填充數(shù)組.如果你這個(gè)都想不到的話,那你真是白學(xué)了:dimname(7),str'一共八個(gè)學(xué)生,str變量是用來把他們儲(chǔ)存成一個(gè)字符串以便輸出
fori=0to7
name(i)=inputbox("請(qǐng)輸入第"&i+1&"個(gè)學(xué)生的名字")
str=str&""&name(i)
next
msgbox(str)這樣我們就有了一個(gè)小小的數(shù)據(jù)庫,它們的數(shù)據(jù)排列可以看成這樣:name(0),name(1),name(2).....name(7)看到了吧,所以我說我們可以把它看成是"一條線",等到我們學(xué)到了文件操作,就可以把他們輸出到文件中去了.一維數(shù)組有很多用處,我們來看一下一個(gè)復(fù)雜的例子.我們要儲(chǔ)存3各學(xué)生的名字,身高,成績(jī)這三種數(shù)據(jù),由于名字是字符串,而身高可能是浮點(diǎn)數(shù)(帶小數(shù)點(diǎn)的數(shù)),成績(jī)則可能是整數(shù),所以我們不能把他們儲(chǔ)存在一個(gè)數(shù)組里面(不要忘記,數(shù)組織只能存儲(chǔ)同類的數(shù)據(jù)),所以我們要建3個(gè)數(shù)組,以下是例程:dimname(2),high(2),mark(2)'定義三個(gè)數(shù)組分別儲(chǔ)存3個(gè)人的名字,身高和得分
dimctr'計(jì)數(shù)器
forctr=0to2
name(ctr)=inputbox("請(qǐng)輸入第"&ctr+1&"個(gè)學(xué)生的姓名")
high(ctr)=inputbox("請(qǐng)輸入第"&ctr+1&"個(gè)學(xué)生的身高")
mark(ctr)=inputbox("請(qǐng)輸入第"&ctr+1&"個(gè)學(xué)生的得分")
nextOK,我們已經(jīng)填充好了數(shù)據(jù),現(xiàn)在我們的小小數(shù)據(jù)庫只能按順序輸入,我們要讓它看起來像點(diǎn)樣子,我們來給他設(shè)計(jì)查詢功能:'接著上面的程序
dimcname,temp'要查詢的名字,和一個(gè)臨時(shí)變量,用來儲(chǔ)存數(shù)據(jù)的位置
cname=inputbox("請(qǐng)輸入你要查詢的名字:")
forctr=0to2'遍歷所有name數(shù)組的成員,尋找要查詢的名字
ifname(ctr)=cnamethen
temp=ctr'記錄數(shù)據(jù)位置
exitfor'退出循環(huán),和exitdo的用法一樣
endif'不要忘了endif
next
msgbox("姓名:"&name(temp)&""&"身高:"&high(temp)&""&"得分:"&mark(temp))嘿嘿,有意思吧,其實(shí)在這個(gè)程序里面,那個(gè)temp變量完全沒有必要,只是為了更清楚地說明問題.因?yàn)楫?dāng)exitfor以后ctr變量的值就不會(huì)改變,儲(chǔ)存的正好是對(duì)應(yīng)數(shù)據(jù)在數(shù)組中的位置,寫這個(gè)temp變量是為了照顧到以后要學(xué)C++的朋友(C++可以在for語句里聲明新變量,只在這個(gè)for結(jié)構(gòu)中有效,所以到了外部就不能訪問了).也就是說可以簡(jiǎn)化成如下:dimcname
cname=inputbox("請(qǐng)輸入你要查詢的名字:")
forctr=0to2
ifname(ctr)=cnamethenexitfor'因?yàn)橹挥衑xitfor就不需要塊if了
next
msgbox("姓名:"&name(ctr)&""&"身高:"&high(ctr)&""&"得分:"&mark(ctr))這是最直接的路子.好好重讀一下上面所有的源代碼,然后自己寫幾個(gè)程序,完全搞清楚一維數(shù)組及其應(yīng)用以后再看后面的二位數(shù)組.二維數(shù)組好像是一個(gè)一維數(shù)組的集合,就好像"線積成面"一樣,由n各一維數(shù)組組成二維數(shù)組,這是初學(xué)者比較好理解的辦法(比較精確的是用"編號(hào)"的概念去理解,因?yàn)?維以上的數(shù)組就比較難以用歐幾里德幾何概念去解釋了).二維數(shù)組是很好解釋的,我們來看一下:dima(2,2)'從零開始,一共有3X3=9個(gè)數(shù)據(jù)
dimi,j'需要兩個(gè)計(jì)數(shù)器
fori=0to2
forj=0to2'使用嵌套循環(huán)
a(i,j)="X"
next
next我們創(chuàng)建了一個(gè)這樣的二維數(shù)組(那些","是我用來分割元素的,并不存在),了解二維數(shù)組的了嗎不清楚我們?cè)僦v一下編號(hào)012
0X,X,X
1X,X,X
2X,X,X二維數(shù)組的看起來是不是就是一個(gè)矩形呢(你在內(nèi)存中看不到這樣的矩形,只是便于你理解),每個(gè)數(shù)據(jù)都有編號(hào),由兩個(gè)數(shù)來定位,這個(gè)很像(非常像)你在國(guó)際象棋棋盤上尋找一個(gè)格,我們用類似"C6","A2"這樣的"垂直坐標(biāo)"進(jìn)行定位,對(duì),"垂直坐標(biāo)",很確切.我們要使用一個(gè)二維數(shù)組元素的時(shí)候可以和普通變量一樣使用,只要指定數(shù)組元素的"定位點(diǎn)"就可以了,例如a(0)(1)=1,b(2)(1)="你好",諸如此類.要注意的是二維數(shù)組也只能儲(chǔ)存類型相同的元素,而且上標(biāo)(起點(diǎn))也從0開始.計(jì)算一個(gè)二維數(shù)組的元素個(gè)數(shù)只要把兩個(gè)下標(biāo)+1(以得到實(shí)際的值)再乘起來就可以了,非常類似于求一個(gè)矩形的面積.假如需要儲(chǔ)存的都是同一類型的數(shù)據(jù),我們就可以用二維數(shù)組,比如要儲(chǔ)存5個(gè)人的姓名,國(guó)籍,民族,就可以使用二維數(shù)據(jù)diminfo(4,2)'一共五個(gè)人,要儲(chǔ)存的數(shù)據(jù)類型有3項(xiàng)
dimi,j
fori=0to4
forj=0to2
dimopt'定義一個(gè)變量用于存儲(chǔ)數(shù)據(jù)項(xiàng)提示
selectcasej'判斷應(yīng)該輸入的是什么數(shù)據(jù)
case0
opt="姓名"
case1
opt="國(guó)籍"
case2
opt="民族"
endselect
info(i,j)=inputbox("請(qǐng)輸入第"&i+1&"個(gè)人的"&opt)
next
next
'輸出太麻煩了,我懶得動(dòng),你知道那么回事就行了這樣就不需要定義3個(gè)一維數(shù)組了.多位數(shù)組(三維以上)的定義和使用方法與二維數(shù)組一樣,但不太好在歐幾里德幾何空間里加以解釋,幸好我們并不太常用那么多維的數(shù)組.定義一個(gè)三位數(shù)組:dima(1,2,3)'一共24各數(shù)組元素.今天因?yàn)橐峒?我喜歡Sengkang啊,可是MM嫌交通不便,誰不知道她只想去逛街),而GF要去和她的同學(xué)去參加什么試驗(yàn)半夜才回家,所以下午我只能自己去押車搬家了,5555~~好可憐,這次就請(qǐng)大家原諒我少寫一點(diǎn),我可是站在圖書館外寫的啊,現(xiàn)在腿都軟了~~~本來還要講"動(dòng)態(tài)數(shù)組"的,但想了想還是放到"進(jìn)階部分"再說吧.要點(diǎn):1)一維數(shù)組是"線",二維數(shù)組是"面",三維數(shù)組是"體"(多維數(shù)組就亂套)2)數(shù)組的下標(biāo)從0開始3)for循環(huán)在數(shù)組的應(yīng)用中起了很大作用,二維數(shù)組需要嵌套循環(huán)作業(yè):上次出的"百雞問題",大家喜歡嗎以后我們就做這種需要?jiǎng)幽X的題目,那些簡(jiǎn)單的實(shí)踐,大家一定要多做!1)定義一個(gè)數(shù)組,包含5個(gè)元素,都是隨機(jī)整數(shù)(隨便輸入),要求把他們按照從大到小的順序排列起來2)有兩個(gè)二維數(shù)組a(4,4)和b(4,4)(元素值隨便),交換兩個(gè)數(shù)組(原來的a的所有元素值變成b的,b的所有元素值變成a的)
最后一篇:新家不錯(cuò),MM開心,我也就跟著高興了:),今天我們學(xué)習(xí)基礎(chǔ)篇的最后一個(gè)部分:自定義函數(shù)和過程.我們每天都在和函數(shù)打交道,inputbox()是函數(shù),msgbox()是函數(shù),int()也是函數(shù)...這些函數(shù)都是系統(tǒng)內(nèi)建的,我們只能用不能改.今天,我就教大家怎樣自己制作一個(gè)函數(shù).首先我們要了解,為什么要用函數(shù),我們用"實(shí)例"說話,先看一個(gè)例子:給出兩個(gè)數(shù),輸出較大的那一個(gè).dima1,a2,b1,b2,c1,c2
a1=2:a2=4'":"可以讓你把多個(gè)語句寫在一行上
b1=32:b2=67
c1=12:c2=898ifa1>a2then
msgbox(a1)
elseifa1<a2then
msgbox(a2)
endififb1>b2then
msgbox(b1)
elseifb1<b2then
msgbox(b2)
endififc1>c2then
msgbox(c1)
elseifc1<c2then
msgbox(c2)
endif多么麻煩呀,我們把相同的比較過程復(fù)制了好幾遍,早期語言沒有結(jié)構(gòu)化(沒有過程和函數(shù))的時(shí)候,程序員們的確是這么干的,他們復(fù)制(Copy),那個(gè)年代也沒有剪貼板這一說,大家都是重新輸入代碼.后來工作簡(jiǎn)化了:
dima1,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))functionco(t1,t2)'我們使用function定義了一個(gè)新的函數(shù)
ift1>t2then
co=t1'通過"函數(shù)名=表達(dá)式"這種方法返回結(jié)果
elseift2>t1then
co=t2
endif
endfunction
我們?cè)谶@里是用了一個(gè)新的關(guān)鍵字:funciton,這個(gè)關(guān)鍵字表示一個(gè)新函數(shù)開始,格式:funciton函數(shù)名(參數(shù)1,參數(shù)2...參數(shù)n)'列表可以是空的,但括號(hào)不能省略,參數(shù)之間用","分割
...
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度綜合金融服務(wù)合同
- 2024年度員工福利費(fèi)用共享協(xié)議
- 關(guān)于2022學(xué)生頂崗實(shí)習(xí)心得范文大全
- 傳統(tǒng)節(jié)日演講稿范文
- 2024年商場(chǎng)美食廣場(chǎng)招商合同
- 2024年度坂田二期公交車消防設(shè)備升級(jí)及安裝合同
- 2024年工程項(xiàng)目合作框架協(xié)議
- 2024年度玻璃購(gòu)銷協(xié)議
- 語法副詞課件教學(xué)課件
- 2024年度網(wǎng)絡(luò)文化傳播合同
- 光伏發(fā)電項(xiàng)目達(dá)標(biāo)投產(chǎn)實(shí)施細(xì)則之歐陽科創(chuàng)編
- 焊接符號(hào)說明
- 第屆世界旅游小姐大賽中國(guó)云南總決賽招商贊助方案
- 愛立信網(wǎng)管BO操作流程
- 大學(xué)生計(jì)算與信息化素養(yǎng)-北京林業(yè)大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 第四代篦冷機(jī)液壓系統(tǒng)的故障與維護(hù)獲獎(jiǎng)科研報(bào)告
- 人大代表為人民
- 文明之痕:流行病與公共衛(wèi)生知到章節(jié)答案智慧樹2023年四川大學(xué)
- 鋼結(jié)構(gòu)設(shè)計(jì)原理全套PPT完整教學(xué)課件
- 《基于杜邦分析法周大福珠寶企業(yè)盈利能力分析報(bào)告(6400字)》
- 延安整風(fēng)與馬克思主義中國(guó)化
評(píng)論
0/150
提交評(píng)論