VBS編程教程 (第2篇)
更新時(shí)間:2007年07月30日 20:26:22 作者:
第二篇:
我真沒想到, 第一次的作業(yè)竟然有人不會.
看來要講的非常非常細(xì)致才行, 嗯, 今天講各種"量"和基本運(yùn)算
先說常量, 這個(gè)比較簡單.
什么是常量呢, 常量就是其值不可變化的量.
常量分為兩種:第一種, 自然常量. 這叫是因?yàn)樗鼈儽旧砭褪浅A? 你怎么更改21的值呢? 他永遠(yuǎn)都是21, 不可能變成46
如果你在程序中使用"21=46", 這樣的語句將會引發(fā)一個(gè)錯(cuò)誤. 同樣的, 字符串也是常量 (還記得字符串嗎? 就是包裹在""之間的一串字符), "Hello World"就是一個(gè)例子, 如果你使用"Hello World"="Bye"這樣的語句同樣會引發(fā)一個(gè)錯(cuò)誤. 你能舉出自然常量的更多例子嗎?
第二種, 是我們自己定義的常量,這種量也使用代號, 他們也被賦值, 但和變量的不同點(diǎn)在于, 他們在定義的時(shí)候被賦值,以后就不能改變了,如果企圖改變將會引發(fā)一個(gè)錯(cuò)誤. 定義一個(gè)變量,我們使用"const"這個(gè)關(guān)鍵字(關(guān)鍵字的意思是系統(tǒng)定義了有特殊功能的字, 不能作為變量名或常量名使用),格式是:const 常量名=常量值.
例如:
const PI=3.1415926
const NAME="記憶碎片"
這樣我們就定義了兩個(gè)常量, PI和NAME, 一般說來, 常量名全部使用大寫, 但也可以不用, 隨你喜好. 將一些在程序中不需要改變的值定義為常量是個(gè)好習(xí)慣, 這樣能防止不必要的意外. 另外, 使用自定義常量也可以減少你的工作量. 比如:
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
這個(gè)程序輸出五次Hello World, 如果你想要改變輸出為Bye-Bye, 就必須修改全部程序, 當(dāng)然你可以手動修改5次, 但如果你要輸出1000次呢? 常量就可以替我們解決這個(gè)問題:
const hw="Hello World"
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)會打開盒子取出里面的東西, 讓這些東西參與處理, 而不是盒子. 有些語言是很依賴"盒子"里面裝些什么東西, 這樣才能找到合適的"盒子"(比如C語言), 但VBS給我提供的是能夠自動伸縮的"魔術(shù)盒", 我們不用關(guān)心裝進(jìn)去的是什么東西,
VBS會自動調(diào)整盒子的大小. 例如:
Dim a1,a2,a3
a1=14
a2=12.23
a3="Hello"
而不用像C語言那樣麻煩: 或者是VB的正規(guī)聲明(VB可以聲明也可以不用)那樣:
int a1; Dim a1 as integer
float a2; Dim a2 as Double
char* a3; Dim a3 as strnig
a1=14; a1=14
a2=12.23; a2=12.23
a3="Hello"; a3="Hello"
嗯……扯遠(yuǎn)了……
變量有什么用呢? 哇, 那用處可大了. 最簡單, 你并不能確定程序運(yùn)行時(shí)變量的值, 比如前一節(jié)課我們編的輸入姓名的程序, 你不能確定InputBox返回的是什么(還記得Inputbox的返回值嗎? 就是你輸入的內(nèi)容), 所以你就沒有辦法應(yīng)對各種情況, 但我們用name這個(gè)"盒子"把用戶的名字裝起來, 到用的時(shí)候我們只要知道name這個(gè)盒子的名字就行了, 系統(tǒng)會自己打開他并把里面的內(nèi)容拿出來用. 再舉個(gè)例子, 我們編寫一個(gè)程序計(jì)算一個(gè)矩形的面積, 比如這個(gè)程序要發(fā)給小學(xué)生使用:
dim a,b,s
a=15
b=12
s=a*b
msgbox(s)
這樣就可以求出長為15,寬為12的矩形的面積了, 是不是很簡單? 當(dāng)然, 這個(gè)程序也可以這樣寫:
dim s
s=15*12
msgbox(s)
這樣看起來程序短了許多, 也節(jié)約內(nèi)存, 但并不是鼓勵(lì)的做法, 為什么? 請看下面.
現(xiàn)在, 我們的程序要變得像點(diǎn)樣子才行, 誰的程序?qū)懗鰜磉€要別人修改源代碼才能用啊?
所以, 我們要接受用戶的輸入, 還記得嗎? InputBox函數(shù).
修改后程序如下:
dim a,b,s
a=inputbox("請輸入矩形的長:")
b=inputbox("請輸入矩形的寬:")
s=a*b
msgbox(s)
ok, 這么一修改, 無論用戶輸入怎樣的數(shù)據(jù), 我們都能計(jì)算出矩形的面積了. 如果你用s=15*12能改嘛? 當(dāng)然不行.
我想你已經(jīng)發(fā)現(xiàn)了, vbs中的數(shù)學(xué)計(jì)算和真正的算術(shù)沒有什么不同, +,-,*,/,(),[],{}都是一樣的用法, 比如:
dim ans
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ù), 例如
dim a
a=16 mod 5
你知道a等于幾嗎? Bingo! 沒錯(cuò), 就是1. 因?yàn)?6 / 5 =3....1, 所以mod計(jì)算的結(jié)果就是1.
還有一個(gè)運(yùn)算符是"^"(就是鍵盤"6"上面的小箭頭), 他表示"乘冪"(或者是"方") 比如:
dim a,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取值3.14159
2) 編一個(gè)程序取得20 / 3 的余數(shù)
我真沒想到, 第一次的作業(yè)竟然有人不會.
看來要講的非常非常細(xì)致才行, 嗯, 今天講各種"量"和基本運(yùn)算
先說常量, 這個(gè)比較簡單.
什么是常量呢, 常量就是其值不可變化的量.
常量分為兩種:第一種, 自然常量. 這叫是因?yàn)樗鼈儽旧砭褪浅A? 你怎么更改21的值呢? 他永遠(yuǎn)都是21, 不可能變成46
如果你在程序中使用"21=46", 這樣的語句將會引發(fā)一個(gè)錯(cuò)誤. 同樣的, 字符串也是常量 (還記得字符串嗎? 就是包裹在""之間的一串字符), "Hello World"就是一個(gè)例子, 如果你使用"Hello World"="Bye"這樣的語句同樣會引發(fā)一個(gè)錯(cuò)誤. 你能舉出自然常量的更多例子嗎?
第二種, 是我們自己定義的常量,這種量也使用代號, 他們也被賦值, 但和變量的不同點(diǎn)在于, 他們在定義的時(shí)候被賦值,以后就不能改變了,如果企圖改變將會引發(fā)一個(gè)錯(cuò)誤. 定義一個(gè)變量,我們使用"const"這個(gè)關(guān)鍵字(關(guān)鍵字的意思是系統(tǒng)定義了有特殊功能的字, 不能作為變量名或常量名使用),格式是:const 常量名=常量值.
例如:
const PI=3.1415926
const NAME="記憶碎片"
這樣我們就定義了兩個(gè)常量, PI和NAME, 一般說來, 常量名全部使用大寫, 但也可以不用, 隨你喜好. 將一些在程序中不需要改變的值定義為常量是個(gè)好習(xí)慣, 這樣能防止不必要的意外. 另外, 使用自定義常量也可以減少你的工作量. 比如:
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
這個(gè)程序輸出五次Hello World, 如果你想要改變輸出為Bye-Bye, 就必須修改全部程序, 當(dāng)然你可以手動修改5次, 但如果你要輸出1000次呢? 常量就可以替我們解決這個(gè)問題:
const hw="Hello World"
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)會打開盒子取出里面的東西, 讓這些東西參與處理, 而不是盒子. 有些語言是很依賴"盒子"里面裝些什么東西, 這樣才能找到合適的"盒子"(比如C語言), 但VBS給我提供的是能夠自動伸縮的"魔術(shù)盒", 我們不用關(guān)心裝進(jìn)去的是什么東西,
VBS會自動調(diào)整盒子的大小. 例如:
Dim a1,a2,a3
a1=14
a2=12.23
a3="Hello"
而不用像C語言那樣麻煩: 或者是VB的正規(guī)聲明(VB可以聲明也可以不用)那樣:
int a1; Dim a1 as integer
float a2; Dim a2 as Double
char* a3; Dim a3 as strnig
a1=14; a1=14
a2=12.23; a2=12.23
a3="Hello"; a3="Hello"
嗯……扯遠(yuǎn)了……
變量有什么用呢? 哇, 那用處可大了. 最簡單, 你并不能確定程序運(yùn)行時(shí)變量的值, 比如前一節(jié)課我們編的輸入姓名的程序, 你不能確定InputBox返回的是什么(還記得Inputbox的返回值嗎? 就是你輸入的內(nèi)容), 所以你就沒有辦法應(yīng)對各種情況, 但我們用name這個(gè)"盒子"把用戶的名字裝起來, 到用的時(shí)候我們只要知道name這個(gè)盒子的名字就行了, 系統(tǒng)會自己打開他并把里面的內(nèi)容拿出來用. 再舉個(gè)例子, 我們編寫一個(gè)程序計(jì)算一個(gè)矩形的面積, 比如這個(gè)程序要發(fā)給小學(xué)生使用:
dim a,b,s
a=15
b=12
s=a*b
msgbox(s)
這樣就可以求出長為15,寬為12的矩形的面積了, 是不是很簡單? 當(dāng)然, 這個(gè)程序也可以這樣寫:
dim s
s=15*12
msgbox(s)
這樣看起來程序短了許多, 也節(jié)約內(nèi)存, 但并不是鼓勵(lì)的做法, 為什么? 請看下面.
現(xiàn)在, 我們的程序要變得像點(diǎn)樣子才行, 誰的程序?qū)懗鰜磉€要別人修改源代碼才能用啊?
所以, 我們要接受用戶的輸入, 還記得嗎? InputBox函數(shù).
修改后程序如下:
dim a,b,s
a=inputbox("請輸入矩形的長:")
b=inputbox("請輸入矩形的寬:")
s=a*b
msgbox(s)
ok, 這么一修改, 無論用戶輸入怎樣的數(shù)據(jù), 我們都能計(jì)算出矩形的面積了. 如果你用s=15*12能改嘛? 當(dāng)然不行.
我想你已經(jīng)發(fā)現(xiàn)了, vbs中的數(shù)學(xué)計(jì)算和真正的算術(shù)沒有什么不同, +,-,*,/,(),[],{}都是一樣的用法, 比如:
dim ans
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ù), 例如
dim a
a=16 mod 5
你知道a等于幾嗎? Bingo! 沒錯(cuò), 就是1. 因?yàn)?6 / 5 =3....1, 所以mod計(jì)算的結(jié)果就是1.
還有一個(gè)運(yùn)算符是"^"(就是鍵盤"6"上面的小箭頭), 他表示"乘冪"(或者是"方") 比如:
dim a,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取值3.14159
2) 編一個(gè)程序取得20 / 3 的余數(shù)
相關(guān)文章
vbs下用一個(gè)小方法實(shí)現(xiàn)批量添加域用戶
在域模式下批量添加域用戶就有些困難,下面是一個(gè)vbs腳本,在同級目錄下用放置一個(gè)users.txt的文本文檔,格式:username,password,在dc上運(yùn)行該腳本,即可以將users.txt的用戶信息批量添加到ad里面??梢酝ㄟ^移動或拖拽的方法,將生成的用戶移動到ou下面,以保證ou的組策略及文件夾重定向?qū)υ撚脩羯А?2008-06-06vbs腳本實(shí)現(xiàn)下載jre包并靜默安裝的代碼實(shí)例
這篇文章主要介紹了vbs腳本實(shí)現(xiàn)下載jre包并靜默安裝的代碼實(shí)例,通過本文可以學(xué)到VBS中下載遠(yuǎn)程文件的方法、靜默安裝jre包的方法,需要的朋友可以參考下2014-08-08reg2vbs.vbs 將Reg文件轉(zhuǎn)換為VBS文件保存 腳本之家修正版本
可以將Reg文件轉(zhuǎn)換為VBS文件保存的代碼,網(wǎng)上的好多都有問題,本地特給修正了一下,有問題,請回復(fù)。2009-05-05VBS教程:函數(shù)-DateValue 函數(shù)
VBS教程:函數(shù)-DateValue 函數(shù)...2006-11-11視頻轉(zhuǎn)換大師WinMPG Video Convert 6.63
視頻轉(zhuǎn)換大師WinMPG Video Convert 6.63...2007-04-04可以從一臺遠(yuǎn)程服務(wù)器運(yùn)行 SP2 安裝程序Install.vbs
可以從一臺遠(yuǎn)程服務(wù)器運(yùn)行 SP2 安裝程序Install.vbs...2007-04-04vbs實(shí)現(xiàn)的支持拖動的txt文本切割器
用vbs實(shí)現(xiàn)的txt文本文件切割器,默認(rèn)為8000個(gè)字符切為一個(gè)文件。支持拖動。2008-06-06一些經(jīng)典的主要用戶黑客的vbs腳本結(jié)合echo的dos下實(shí)現(xiàn)
一些經(jīng)典的主要用戶黑客的vbs腳本結(jié)合echo的dos下實(shí)現(xiàn)...2007-02-02