VBS編程教程 (第2篇)

來源:互聯網
上載者:User

第二篇:
我真沒想到, 第一次的作業竟然有人不會.

  看來要講的非常非常細緻才行, 嗯, 今天講各種"量"和基本運算

  先說常量, 這個比較簡單.

  什麼是常量呢, 常量就是其值不可變化的量.

  常量分為兩種:第一種, 自然常量. 這叫是因為它們本身就是常量, 你怎麼更改21的值呢? 他永遠都是21, 不可能變成46

如果你在程式中使用"21=46", 這樣的語句將會引發一個錯誤. 同樣的, 字串也是常量 (還記得字串嗎? 就是包裹在""之間的一串字元), "Hello World"就是一個例子, 如果你使用"Hello World"="Bye"這樣的語句同樣會引發一個錯誤. 你能舉出自然常量的更多例子嗎?

  第二種, 是我們自己定義的常量,這種量也使用代號, 他們也被賦值, 但和變數的不同點在於, 他們在定義的時候被賦值,以後就不能改變了,如果企圖改變將會引發一個錯誤. 定義一個變數,我們使用"const"這個關鍵字(關鍵字的意思是系統定義了有特殊功能的字, 不能作為變數名或常量名使用),格式是:const 常量名=常量值.

例如:

const PI=3.1415926

const NAME="記憶片段"

  這樣我們就定義了兩個常量, PI和NAME, 一般說來, 常量名全部使用大寫, 但也可以不用, 隨你喜好. 將一些在程式中不需要改變的值定義為常量是個好習慣, 這樣能防止不必要的意外. 另外, 使用自訂常量也可以減少你的工作量. 比如:

msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")

  這個程式輸出五次Hello World, 如果你想要改變輸出為Bye-Bye, 就必須修改全部程式, 當然你可以手動修改5次, 但如果你要輸出1000次呢? 常量就可以替我們解決這個問題:

const hw="Hello World"
msgbox(hw)
msgbox(hw)
msgbox(hw)
msgbox(hw)
msgbox(hw)

  這樣當你要修改輸出的時候只要修改hw的值就行了.

  好了, 現在我們來看看編程的第一塊重要"基石":變數. 解釋變數最好的辦法我覺得是"盒子", 一個變數好像一個盒子, 裡面只能裝一個東西, 當你要裝進去別的東西的時候必須把原有的東西拿出來. 這個"盒子"是有名稱的, 當你在程式中使用變數的時候, 系統會開啟盒子取出裡面的東西, 讓這些東西參與處理, 而不是盒子. 有些語言是很依賴"盒子"裡面裝些什麼東西, 這樣才能找到合適的"盒子"(比如C語言), 但VBS給我提供的是能夠自動調整的"魔術盒", 我們不用關心裝進去的是什麼東西,

VBS會自動調整盒子的大小. 例如:

Dim a1,a2,a3
a1=14
a2=12.23
a3="Hello"

而不用像C語言那樣麻煩: 或者是VB的正規聲明(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"

嗯……扯遠了……

  變數有什麼用呢? 哇, 那用處可大了. 最簡單, 你並不能確定程式運行時變數的值, 比如前一節課我們編的輸入姓名的程式, 你不能確定InputBox返回的是什麼(還記得Inputbox的傳回值嗎? 就是你輸入的內容), 所以你就沒有辦法應對各種情況, 但我們用name這個"盒子"把使用者的名字裝起來, 到用的時候我們只要知道name這個盒子的名字就行了, 系統會自己開啟他並把裡面的內容拿出來用. 再舉個例子, 我們編寫一個程式計算一個矩形的面積, 比如這個程式要發給小學生使用:

dim a,b,s
a=15
b=12
s=a*b
msgbox(s)

  這樣就可以求出長為15,寬為12的矩形的面積了, 是不是很簡單? 當然, 這個程式也可以這樣寫:

dim s
s=15*12
msgbox(s)

  這樣看起來程式短了許多, 也節約記憶體, 但並不是鼓勵的做法, 為什麼? 請看下面.

  現在, 我們的程式要變得像點樣子才行, 誰的程式寫出來還要別人修改原始碼才能用啊?

  所以, 我們要接受使用者的輸入, 還記得嗎? InputBox函數.

  修改後程式如下:

dim a,b,s
a=inputbox("請輸入矩形的長:")
b=inputbox("請輸入矩形的寬:")
s=a*b
msgbox(s)

  ok, 這麼一修改, 無論使用者輸入怎樣的資料, 我們都能計算出矩形的面積了. 如果你用s=15*12能改嘛? 當然不行.

  我想你已經發現了, vbs中的數學計算和真正的算術沒有什麼不同, +,-,*,/,(),[],{}都是一樣的用法, 比如:

dim ans
ans=12+32/4+[(23-10)*2]
msgbox(ans)

  四則運算的法則在編程中同樣生效, 你可以在編程中重新獲得小學時候的樂趣(你恨數學?那就別學電腦了).

  在編程中有一個有趣的運算子是"mod", 這個運算子叫做"取餘運算子", 就是取得一次除法的餘數, 例如

dim a
a=16 mod 5

  你知道a等於幾嗎? Bingo! 沒錯, 就是1. 因為16 / 5 =3....1, 所以mod計算的結果就是1.

  還有一個運算子是"^"(就是鍵盤"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

  我們一次不要講太多, 這次就講到這裡, 現在總結一下.

要點:

1) 常量分為自然常量和自訂常量, 常量的值不可修改

2) 變數就像盒子, 我們不在乎盒子裡裝的是什麼, 但一定要知道盒子的名字

3) 四則運算在編程中沒有任何不同

4) MOD是取餘運算

作業:

1) 編一個程式, 計算圓形的面積, 半徑由使用者給出 (使用Inputbox) PI取值3.14159

2) 編一個程式取得20 / 3 的餘數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.