VS2005 之 Visual Basic 程式語言介紹

oyjd614發表於2007-11-02

轉自: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 塊中的程式碼。

 

相關文章