轉自:http://www.cnblogs.com/freeliver54/archive/2007/08/29/874787.html
1.變量 的 聲明 賦值 使用
2.單詞和文本:使用字符串變量來組織單詞
3.數組:表示多個值的變量
4.算法:創建包含變量和運算符的表達式
5.比較:使用表達式比較值
6.使計算機執行某種操作:編寫您的第一個過程
7.使程序重複執行操作:用 For...Next , Do...While, Do...Until 循環執行循環
8.使程序在兩種可能的情況之間選擇:If...Then , Select Case 語句
9.出錯時怎麼辦:處理錯誤 Try...Catch...Finally 塊
========================
1.變量 的 聲明 賦值 使用
========================
a.聲明變量
----------
聲明變量時,必須決定其名稱和爲其分配什麼樣的“數據類型”。
使用 Dim 和 As“關鍵字”來聲明變量,如下所示。
Dim aNumber As Integer
這行代碼告訴程序您要使用一個名爲 aNumber 的變量,
並且希望它是存儲整數(Integer 數據類型)的變量。
因爲 aNumber 是一個 Integer,所以它只能存儲整數。
例如要存儲 42.5,需使用 Double 數據類型。
如果要存儲一個單詞,需使用 String 數據類型。
另外一種在此值得一提的數據類型是 Boolean,它可存儲 True 或 False 值。
b.給變量賦值
------------
使用 = 符號(該符號有時稱作“賦值運算符”)給變量賦值,如下例所示。
aNumber = 42
這行代碼的值爲 42,它存儲在先前聲明的名爲 aNumber 的變量中。
c.聲明變量和用默認值給變量賦值
------------------------------
如上所示,您可以在一行代碼上聲明變量,然後在另一行上賦值。
但是,如果嘗試在賦值前使用變量,這會導致錯誤。
因此,最好在一行上聲明變量和給變量賦值。
即使還不知道變量要存儲什麼值,也可以賦默認值。
對於前面顯示的那些變量,聲明和賦值代碼可以是下面這樣。
Dim aDouble As Double = 0
Dim aName As String = "default string"
Dim YesOrNo As Boolean = True
======================================
2.單詞和文本:使用字符串變量來組織單詞
======================================
“字符串”是任意一系列文本字符,例如字母、數字、特殊字符和空格。
String 變量的創建方法與其他變量一樣:
首先聲明變量,然後爲其賦值,如下所示。
Dim aString As String = "This is a string"
將實際文本(也稱爲“字符串”)賦值給 String 變量時,
文本必須用雙引號 ("") 括起來。
也可使用 = 字符將一個 String 變量賦值給另一個 String 變量,
如下例所示。
Dim aString As String = "This is a string"
...
Dim bString As String = ""
bString = aString
前面的代碼將 bString 的值設置爲與 aString (This is a string) 相同的值。
可以使用“and”符 (&) 按順序將兩個或多個字符串合併成一個新字符串,如下所示。
Dim aString As String = "Across the Wide"
Dim bString As String = "Missouri"
Dim cString As String = ""
cString = aString & bString
包含在 cString 中的文本現在顯示爲 Across the Wide Missouri。
========================
3.數組:表示多個值的變量
========================
在上一課中,我們學習了使用變量存儲不同類型的數據以供程序使用。
還有另一種稱爲“數組”的變量,
它提供了一種便利的方法來存儲同一類型的多個值。
a.聲明一數組
------------
例如,假設您要爲一支棒球隊設計程序,並想存儲場上所有隊員的姓名。
您可以創建九個單獨的字符串變量,每個隊員一個,
或者聲明一個類似於以下代碼的數組變量。
Dim players() As String
您可以通過在變量名稱之後加括號來聲明一個數組變量。
如果您知道需要存儲多少個值,也可以按如下所示在聲明中指定數組的大小。
Dim players(8) As String
您也許會發現兩者不匹配,數組大小是 8 而棒球隊有 9 個隊員。
這是由於數組是由許多值或“元素”所組成,以元素 0 開始,
以聲明中指定的數字結束。
在本例中,數組包含元素 0 到 8,總共 9 個元素。
b.爲數組賦值
------------
與其他類型的值一樣,您需要爲數組賦值。
爲此,需引用元素編號作爲賦值的一部分,如下所示。
players(0) = "John"
players(3) = "Bart"
在以上代碼中,值 John 賦給數組的第一個元素(元素 0),
值 Brett 賦給第四個元素(元素 3)。
數組元素無需按序賦值,任何未賦值的元素都將有一個默認值,
在本例中爲空字符串。
與其他類型的值一樣,您可以在單獨的一行上聲明一個數組併爲它賦值,
如下所示。
Dim players() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9}
在本例中,大括號表示值列表。 按照所列順序給元素賦值。
注意,未指定數組的大小——它取決於所列項的數目。
c.從數組中檢索值
----------------
正如在數組中用數字指定某一項的位置一樣,用元素編號來指定所要檢索的值。
Dim AtBat As String
AtBat = players(3)
以上代碼檢索數組中的第四個元素並將它賦給字符串變量 AtBat。
d.示例 在數組中存儲值
---------------------
Dim players() As String = {"Dan", "Fred", "Bart", "Carlos", _
"Ty", "Juan", "Jay", "Sam", "Pedro"}
Dim i As Integer = CInt(Textbox1.Text)
MsgBox(players(i) & " is on first base.")
注意,上面的代碼使用 CInt 函數將 String 值 (TextBox1.Text)
轉換爲 Integer (i)。
====================================
4.算法:創建包含變量和運算符的表達式
====================================
表達式”是一段代碼,它執行運算並返回值。
例如,下面展示一個簡單的加法表達式。
5 + 4
表達式 5 + 4 在計算時返回值 9,
它由兩部分組成:
執行運算的值即“操作數”(5 和 4),
以及指定要執行的運算的“運算符”(+)。
a.使用由表達式返回的值
----------------------
要使表達式有用,必須對返回的值進行一些處理。
最常見的做法是將它賦給某個變量,如下所示。
Dim anInteger As Integer = 5 + 4
本示例聲明瞭一個名爲 anInteger 的新的 Integer 變量,
並將 5 + 4 返回的值賦給它。
b.算術運算符
------------
表達式常用於對變量執行運算:加法、減法、乘法或除法。
下表描述了常用的算術運算符。
運算符 說明 示例
“+”(加) 返回兩個操作數之和 5 + 4
“-”(減) 返回兩個操作數之差 5 - 4
“*”(乘) 返回兩個操作數之積 5 * 4
“/”(除) 返回兩個操作數之商 5 / 4
執行運算時使用的變量類型可影響結果。
將兩個數相除通常導致返回的值不是整數。
例如,3 除以 2,結果是 1.5。
如果將此表達式的返回值賦給一個 Integer 變量,
它將會舍入爲與其最接近的整數 2。
執行除法時,應該使用 Double 變量存儲返回的值。
========================
5.比較:使用表達式比較值
========================
在本課中,您將學習如何使用“比較運算符”來創建比較值的表達式。
在上一課中,您學習瞭如何使用算術運算符創建數值表達式並返回數值。
另一種運算符,也就是“比較運算符”,
可用於比較數值並返回 Boolean(True 或 False)值。
比較運算符最常用於值的比較,並通過比較作出決定。
使程序在兩種可能的情況之間選擇:
If...Then 語句中將會深入探討如何在程序中作出決定。
下表總結了比較運算符:
運算符 說明 示例
=(等於) 如果左邊的數字等於右邊的數字,返回 True。 5 = 4 (false)
4 = 5 (false)
4 = 4 (true)
<>(不等於) 如果左邊的數字不等於右邊的數字,返回 True。 5 <> 4 (true)
4 <> 5 (true)
4 <> 4 (false)
>(大於) 如果左邊的數字大於右邊的數字,返回 True。 5 > 4 (true)
4 > 5 (false)
4 > 4 (false)
<(小於) 如果左邊的數字小於右邊的數字,返回 True。 5 < 4 (false)
4 < 5 (true)
4 < 4 (false)
>=(大於或等於)
如果左邊的數字大於或等於右邊的數字,返回 True。 5 >= 4 (true)
4 >= 5 (false)
4 >= 4 (true)
<=(小於或等於)
如果左邊的數字小於或等於右邊的數字,返回 True。 5 <= 4 (false)
4 <= 5 (true)
4 <= 4 (true)
==========================================
6.使計算機執行某種操作:編寫您的第一個過程
==========================================
a.什麼是過程?
-------------
過程是可以從其他代碼塊中運行的自我包含的代碼塊。
一般而言,每個過程都包含完成一項任務所需的代碼。
例如,您可能有一個名爲 PlaySound 的過程,此過程包含播放波形文件所需的代碼。
雖然您可以編寫代碼以便在每次程序需要發出聲音時播放聲音,
但創建可以從程序中的任何位置調用的一個過程更有意義。
過程是通過在代碼中調用它來運行或執行的。
例如,若要運行 PlaySound 過程,只需向程序中添加一行包含過程名稱的代碼,如下所示。
PlaySound
這樣就可以了!當程序運行到該行時,它將跳至 PlaySound 過程並執行那裏所包含的代碼。
然後程序將跳回至緊跟在 PlaySound 調用後的下一行。
您可以隨意調用任意多個過程。過程將按調用的順序運行。
例如,您可能還有一個名爲 DisplayResults 的過程;
若要在執行 PlaySounds 過程後執行它,請按如下所示調用這兩個過程。
PlaySounds
DisplayResults
b.函數和 Sub
------------
有兩種過程:函數和子例程(有時也稱爲“Sub”)。
函數對調用它的過程返回一個值,而 Sub 則只執行代碼。
如下例所示,當向程序中添加一行包含 Sub 的名稱的代碼時,將調用對應的 Sub。
DisplayResults
函數則不同,因爲函數不僅執行代碼,還要返回一個值。
例如,設想一個名爲 GetDayOfWeek 的函數,它返回一個 Integer 以指示當天是星期幾。
可以按如下所示的方式調用此函數:
先聲明一個存儲返回值的變量,然後將返回值賦給該變量以供以後使用。
Dim Today As Integer
Today = GetDayOfWeek
在本示例中,將函數返回的值複製到名爲 Today 變量中並存儲以便稍後使用。
c.編寫過程
----------
通過先編寫過程聲明來編寫過程。
過程聲明執行以下幾項任務:指出過程是一個函數還是一個 Sub,命名過程,
並詳細說明過程可能具有的任何參數(本課後面將詳細討論參數)。
下面是一個簡單過程聲明的示例。
Sub MyFirstSub()
End Sub
Sub 關鍵字通知程序此過程是一個 Sub 並且不返回值。
緊接着是 Sub 的名稱 (MyFirstSub),空括號表示此過程沒有任何參數。
最後,End Sub 關鍵字表示此例程的結尾。
此 Sub 要執行的所有代碼都放在這兩行之間。
聲明函數與此類似,但還有一個額外的步驟,
即必須指定返回類型(例如 Integer、String 等)。
例如,返回一個 Integer 的函數可能如下所示。
Function MyFirstFunction() As Integer
End Function
As Integer 關鍵字表示此函數將返回一個 Integer 值。
要從函數中返回值,請使用 Return 關鍵字,如下例所示。
Function GetTheNumberOne() As Integer
Return 1
End Function
此過程將返回數字 1。
d.函數和 Sub 中的參數
---------------------
有時您需要爲過程提供其他信息。
例如,在 PlaySound 過程中,您可能想要播放幾種不同聲音中的一種。
您可以通過使用參數提供要播放的聲音的信息。
參數與變量非常相像。
它們有類型和名稱,並像變量一樣存儲信息。
它們可以像變量一樣在過程中使用。
參數和變量的兩個主要區別是:
參數是在過程聲明中聲明的,而不是在單個代碼行中聲明的。
參數只能在聲明它們的過程中使用。
在過程聲明中,參數在緊跟着過程名的括號中聲明。
As 關鍵字用來聲明類型,並且每個參數前面一般都有 ByVal 關鍵字。
如果您不添加此關鍵字,Visual Basic 會自動添加它
下面顯示了一個帶有參數的 Sub 的示例。
Sub PlaySound(ByVal SoundFile As String, ByVal Volume As Integer)
My.Computer.Audio.Play(SoundFile, Volume)
End Sub
您隨後就可以按如下所示用這些參數的值調用此 sub。
PlaySound("Startup.wav", 1)
也可以用與聲明 sub 參數完全相同的方式聲明函數參數。
===========================================================
7.使程序重複執行操作:用 For...Next , Do...While, Do...Until 循環執行循環
===========================================================
a.For...Next 語句
-----------------
編寫程序時,經常需要重複操作。
例如,假設您要編寫一個在屏幕上顯示一系列數字的方法。
您希望根據需要多次重複顯示數字的那行代碼。
For...Next 循環允許指定一個數字,然後按指定的次數重複該循環內包含的代碼。
下面的示例說明 For...Next 循環在代碼中如何出現。
Dim i As Integer = 0
For i = 1 To 10
DisplayNumber(i)
Next
For...Next 循環以“計數器變量”i 開始。
該循環使用此變量來計算它已經執行的次數。
下一行 (For i = 1 to 10) 告訴程序該循環的重複次數以及 i 將具有的值。
代碼進入 For...Next 循環時,它將從包含第一個值(本例中爲 1)的 i 開始。
然後程序執行 For 行和 Next 行之間的代碼行,
本例中是用 i 的某個參數(本例中仍爲 1)調用 DisplayNumber 方法。
當到達 Next 行時,將 1 添加到 i,然後程序的執行再跳回到 For 行。
此重複直到 i 的值大於 For 行中的第二個數字(本例中爲 10)時才停止。
這時,程序繼續執行 Next 行後的任何代碼。
b.Do...While 語句
-----------------
例如,假設您的一個程序要將一系列數字相加,但和不能超過 100,
這時您可以使用 Do...While 語句執行相加,如下所示:
Dim sum As Integer = 0
Do While sum < 100
sum = sum + 10
Loop
在上述代碼中,Do While 行計算變量 sum,看它是否小於 100:
如果是,則運行下一行代碼;否則,將移動到 Loop 之後的下一行代碼。
Loop 關鍵字告訴代碼返回到 DoWhile 行並計算 sum 的新值。
c.Do...Until 語句
-----------------
Do...While 語句在條件保持爲 True 時重複一個循環,
但您有時可能希望代碼在條件變爲 True 之前重複自身。
您可以按如下所示使用 Do...Until 語句:
Dim sum As Integer = 0
Do Until sum >= 100
sum = sum + 10
Loop
此代碼與 Do...While 語句的代碼類似,只是這次代碼是計算 sum 變量,
看它是否等於或大於 100。
Dim sum2 As Integer = 0
Dim counter2 As Integer = 0
Do Until sum2 >= 100
sum2 = sum2 + CInt(Textbox1.Text)
counter2 = counter2 + 1
Loop
MsgBox("The loop has run " & CStr(counter2) & " times!")
====================================================
8.使程序在兩種可能的情況之間選擇:If...Then , Select Case 語句
====================================================
a.If...Then 語句
----------------
程序需要執行不同的操作以響應不同的條件。
例如,您可能希望程序檢查當天是星期幾,然後根據檢查的結果執行不同的操作。
If...Then 語句允許您計算一個條件,然後根據此條件的結果運行代碼的不同段。
下面的示例演示了 If...Then 語句如何執行。
If My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek.Monday Then
MsgBox("Today is Monday!")
End If
b.Else 子句
-----------
您已經看到在條件爲真的情況下如何使用 If...Then 語句運行代碼,
但如果想要在一個條件爲真時運行一組代碼,
而在該條件爲假時運行另一組代碼,該怎麼辦呢?
在這種情況下,可以使用 Else 子句。
Else 子句允許您指定在某條件爲假時運行的代碼塊。
下面的示例演示了 Else 子句如何執行。
If My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek.Friday Then
MsgBox("Today is Friday!")
Else
MsgBox("It isn't Friday yet!")
End If
c.使用 Select Case 處理多項選擇
-------------------------------
在這一課,您將學習使用 Select Case 語句來運行基於多個條件的代碼。
在上一課您學習瞭如何使用 If...Then 語句對不同的條件運行不同的代碼塊。
雖然通過使用 ElseIf 關鍵字可以在 If...Then 語句中計算兩個以上的條件,
但 Select Case 語句提供了計算多個條件的更好方法。
Select Case 語句允許您根據需要使用多個條件(或情況),
方便地編寫有多種選擇情況下的代碼。
Dim Number As Integer = CInt(Textbox1.Text)
Select Case Number
Case 1
MsgBox("Less than 2")
Case 2 To 5
MsgBox("Between 2 and 5")
Case 6, 7, 8
MsgBox("Between 6 and 8")
Case 9 To 10
MsgBox("Greater than 8")
Case Else
MsgBox("Not between 1 and 10")
End Select
========================================
9.出錯時怎麼辦:處理錯誤 Try...Catch...Finally 塊
========================================
程序運行中發生的錯誤稱爲“運行時錯誤”。
當一個程序試圖做一些其設計功能之外的事情時,便會發生運行時錯誤。
例如,如果程序試圖執行非法操作(如將一個非數值字符串轉換爲一個數值),
就會發生運行時錯誤。
出現運行時錯誤時,程序會發出異常,
以便通過在程序內查找用於處理錯誤的代碼來處理錯誤。
如果未找到這樣的代碼,程序將停止並需要重新啓動。
由於上述情況可能導致數據丟失,
最好在可能預見錯誤發生的任何地方均創建錯誤處理代碼。
a.Try...Catch...Finally 塊
--------------------------
在代碼中可以使用 Try...Catch...Finally 塊來處理運行時錯誤。
您可以 Try 一段代碼,
如果這段代碼發出異常,它將跳轉到 Catch 塊,然後執行 Catch 塊中的代碼。
以上代碼執行完後,執行 Finally 塊中的所有代碼。
整個 Try...Catch...Finally 塊由 End Try 語句結束。
下面的示例闡釋瞭如何使用每一個塊。
Try
' Code here attempts to do something.
Catch
' If an error occurs, code here will be run.
Finally
' Code in this block will always be run.
End Try
首先,執行 Try 塊中的代碼。
如果運行中沒有發生任何錯誤,程序將跳過 Catch 塊並執行 Finally 塊中的代碼。
如果 Try 塊中出現了錯誤,執行控制會立即跳轉到 Catch 塊,運行其中的代碼,
然後再運行 Finally 塊中的代碼。