Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 2 章 Visual Basic 初步.

Similar presentations


Presentation on theme: "第 2 章 Visual Basic 初步."— Presentation transcript:

1 第 2 章 Visual Basic 初步

2 本章重點提要 2-1 Visual Basic 的程式組成 2-2 敘述的構成要素:關鍵字、識別字、文數字與特殊符號 2-3 算術運算
2-4 語法錯誤 2-5 程式註解 2-6 使用變數 2-7 接續符號『_』與存取成員符號『.』

3 本章閱讀建議 2-1 Visual Basic 的程式組成:本章開始正式進入 Visual Basic 的語法說明, 首先來認識 Visual Basic 程式的組成方式。 2-2 敘述的構成要素:關鍵字、識別字、文數字與特殊符號:Visual Basic 敘述是由『關鍵字、識別字、文數字、特殊符號』四種不同要素構成, 本節將分別說明之。

4 本章閱讀建議 2-3 算術運算:程式最主要的用途是運算, 因此本節先來認識Visual Basic 的算術運算, 雖然其符號用法和我們平常用的數學符號差不多, 但有些差異是要特別注意的。 2-4 語法錯誤與警告:雖然 VB 提供 Intellisense 功能幫我們自動完成一部份的程式敘述, 但寫程式時難免會發生錯誤,因此初學者務必要瞭解寫錯程式時應如何解決及修正。

5 本章閱讀建議 2-5 程式註解:程式中的敘述主要是給電腦看的, 但很多時候我們也需在程式中加一些給『人』看的資訊, 所以接著來學習如何在Visual Basic 程式中加入註解文字。 2-6 使用變數:本節是學習撰寫程式的重點, 我們所撰寫的各種程式, 基本上就是在處理變數, 在本節要學到使用變數的基本語法。 2-7 接續符號『_』與存取成員符號『.』:不同的符號在 Visual Basic 代表不同的意義, 本節將介紹『_』和『.』這兩個常用符號的用法。

6 2-1 Visual Basic 的程式組成 Visual Basic 程式是由一行一行的敘述 (Statement) 所組成的,例如前一章的範例 Ch01-02 就是由 5 行敘述和 2 行空白所組成的:

7 Visual Basic 的程式組成 敘述間的空白行通常是為了方便閱讀而加上的, 如果刪除上列程式第 2、6 行的空行, 並不會影響程式的執行結果, 但程式看起來就會擠在一起, 不易閱讀;同理, 多加兩行空白也不會影響程式的執行結果。

8 敘述是以行為單位 空白行可以自由刪除和增加, 但敘述則不能任意擠在同一行或分成好幾行, 因為 Visual Basic 的敘述是以行為單位。將兩個敘述放在同一行, Visual Basic 編譯器就會將之視為錯誤, 例如:

9 2-2 敘述的構成要素:關鍵字、 識別字、文數字與特殊符號
表面上看, 敘述是由一些英文字母組成的, 其實這些英文字具有個別不同的意義, 共有以下四類: 關鍵字 (Keyword):或稱保留字 (Reserved Word), 由 VisualBasic 所內建, 代表特定意義的單字。 識別字 (Identifier):非 Visual Basic 內建, 而是後來由程式設計者自己所定義, 代表某項事物的單字。

10 敘述的構成要素:關鍵字、 識別字、文數字與特殊符號
文數字 (Literal):用人們可識別的方式, 來表示文字、數字、日期、時間等資料。 特殊符號:具特殊意義的符號。

11 敘述的構成要素:關鍵字、 識別字、文數字與特殊符號
以前面範例程式第 1 行的『Module Module1』為例, 即是由關鍵字 Module 和識別字 Module1 所組成的一行敘述。請特別注意,『Module』和『 Module1』雖然只有一個字元的差別, 但兩者的意義是完全不同的!

12 敘述的構成要素:關鍵字、 識別字、文數字與特殊符號
至於範例程式第 4 行『Console.WriteLine("Hello Visual Basic")』,這行敘述是由以下內容所組成: 兩個識別字:Console 和 WriteLine。 一個文數字:"Hello Visual Basic"。 三個特殊符號:小數點 "." 和左右括號 "("、")"。

13 關鍵字 關鍵字 (Keyword) 是 Visual Basic 中預先定義好的, 具有特殊意義的單字。我們可以想像 Visual Basic 自己有一本字典, 關鍵字就是字典中有記載的單字, 每個單字都具有特定的功能及語法, 我們要使用這些關鍵字時, 就要依其語法規範, 不可隨意亂用。

14 關鍵字 以下所列就是 3 個我們已看過的 Visual Basic 關鍵字:

15 識別字 識別字 (Identifier) 是由程式撰寫者自行定義, 以代表某項事物的單字。定義識別字時可使用任何中英文字元, 但習慣上一般較少使用中文字元, 因為輸入、編輯較不方便, 識別字的命名規則如下:

16 識別字 可使用中、英字元、底線字元 (_)、和數字。但數字不能放在字首。例如:
識別字中不可全部都是底線字元, 例如 __、_____ 都是不合法的識別字。 不能用 Visual Basic 關鍵字當識別字。

17 識別字 另外像 .NET Framework 類別庫中的類別 (Class)、方法 (Method)名稱, 也都是識別字, 而非關鍵字。
因為它們並不屬於 Visual Basic 語言本身, 而是由微軟的程式設計師們, 另外設計出來放在.NET Framework 類別庫中, 讓使用 Visual Basic、C#、C++ 語言的程式設計者使用。

18 識別字 例如在第 1 章練習程式中所用的 Console、WriteLine, 就是 .NET Framework 類別庫中的類別與方法, 這些現成的類別和方法我們都可直接使用。至於 .NET Framework 類別庫中到底提供了哪些類別及方法, 可由 VB 的線上說明中查詢。

19 什麼是『類別庫』? .NET Framework 除了提供 CLR 這個執行環境外, 還提供一個實用的類別庫(Class Library)。藉由這個類別庫, 讓我們可用最簡捷的方式寫出程式。 雖然每個人要寫的程式功能各有不同, 但每個程式難免會有一些相同的部份,舉例來說, Windows 應用程式都會有個視窗, 每個視窗的外觀、內容雖不盡相同, 但都具備基本的屬性與操作方法。

20 什麼是『類別庫』? 例如:視窗有外框和標題欄、有按鈕可以讓使用者放大或縮小視窗...等。如果程式開發者, 每次都要重複撰寫這些基本功能的程式, 那麼軟體工業的效率將大打折扣。因此如果有人能將這些基本的程式寫好, 並提供給大家使用, 如此一來, 寫起程式就輕鬆多了。

21 什麼是『類別庫』? 第 1 章提到過, 類別就是具備某項功能的一組程式與資料型態的集合, 而如果將常用的程式、資料分門別類寫好、放在一個個的類別中, 這群類別就是一個類別庫。 當我們寫程式時, 可使用類別庫所提供的類別來建立物件、有些類別還可直接呼叫其方法, 不需建立物件, 像我們用 Console.WriteLine() 在文字模式輸出文字時,即是直接呼叫『Console』類別的『WriteLine()』方法, 並不需建立任何物件。

22 什麼是『類別庫』? 一般而言, 類別庫的來源包括:
微軟 .NET Framework 中的類別庫 (Class Library):為了讓大家更能接受 .NETFramework 環境, 微軟也設計好大量的類別放在 .NET Framework 的基本類別庫 (Base Class Library) 中, 供程式設計者使用。往後各章, 我們就會陸續用到此類別庫中的各種類別來開發程式。

23 什麼是『類別庫』? 自行設計:經常撰寫程式的個人或開發團隊, 可將常用的功能設計成類別來使用, 以後寫起程式更能得心應手。
Freeware 或市售商品:有些人會將寫好的類別庫, 提供給大家免費使用;也有廠商會將特定用途的類別庫公開販售。

24 識別字 下列何者不是合法的識別字? (A) 鹿耳門 (B) Module (C) Not_Module (D) 3隻小豬(E) #1/1/2009# (F) True (G) (H) threeLittlePig (B)、(D)、(E)、(F)、(G)。其中 (B)、(F) 為關鍵字;(D) 首字使用數字; (E)、(G) 為文數字。

25 文數字 文數字 (Literal) 是在程式中表示資料的方法, 例如我們用過的"Hello Visual Basic" 就是一個文數字。在 Visual Basic 中用文數字可表示的資料有整數、浮點數 (Floating Point)、字串 (String)、字元、日期 (Date, 但也可表示時間)、真假資料 (稱為布林值 -Boolean) 等 6 種, 如下表所示:

26 文數字

27 文數字 上表所列的文數字 (資料) 種類, 都是在撰寫程式時經常會用到的,其中數值的表示方式還有更多的變化, 在第 5 章會進一步詳述文字數的用法。

28 特殊符號 許多符號在 Visual Basic 中也都代表特殊的意義, 例如我們前一章就用過的 『.』 和左右括弧, 另外像是接著要介紹的 +、-、*、/ 等代表加減乘除, 還有一些符號會在後面各章適時介紹。

29 特殊符號 請試著指出『Sub Main()』是由什麼關鍵字、識別字、特殊符號組成的。

30 2-3 算術運算 在 Visual Basic 中可以用下列的符號來進行算術運算:

31 算術運算 在程式語言中, 將這些符號稱為運算子 (operator), 例如 + 稱為加法運算子。

32 用 Visual Basic 做算術 練習各種算術運算子用法, 並用程式輸出運算結果。
請建立新的主控台應用程式專案 Ch02-01, 並將專案存至\VB2008\Ch02 子資料夾中:

33 用 Visual Basic 做算術 接著在 Main() 中輸入下列程式:

34 用 Visual Basic 做算術 按 [Ctrl]+[F5] 執行程式 ( 請一律用此方式執行本章的主控台應用程式專案, 否則會因執行過程一下就結束, 而無法看到執行結果), 就會看到如下的執行結果:

35 用 Visual Basic 做算術 按任意鍵結束程式。
我們利用 Console.WriteLine() 一行一行的輸出 (即 Write Line 的意思) 各運算式的計算結果至 Console (主控台的『輸出』裝置就是螢幕), 例如:

36 用 Visual Basic 做算術 在括號中的 3+5 是個算術運算式 (Expression), 而非字串, 此時Visual Basic 就會先算出運算式 3+5 的結果, 再將結果轉成字串輸出:

37 用 Visual Basic 做算術 在運算式中, 參與運算的資料稱為運算元 (Operand), 例如『3+5』中的 3、5 就是運算元;而代表運算方式的『+』則稱為運算子。 請試寫出下列運算式的計算結果, 寫完後再用 Visual Basic 程式驗證之。(A) (B) 9-99 (C) 3^3 (D) 66\5 (E) 12.3 Mod 4 (A) (B) -90 (C) 27 (D) 13 (E) 0.3

38 運算的優先順序 我們學的數學運算是先乘除、後加減, Visual Basic 也依循此規則,所以『3 + 4 * 5』的結果是 23 而非 35。不過 Visual Basic 還有\、Mod、^ 這幾個運算子, 當它們與加減乘除一同出現時, 其優先順序如下:

39 運算的優先順序

40 運算的優先順序 如果是優先順序相同, 則是依由左到右的順序計算, 例如:

41 用括弧改變優先順序 如果要改變運算的優先順序, 也可以和一般算術運算式一樣, 在要優先計算的式子前後加上括弧, 例如:

42 使用負號 大家都知道在數字前可用減號代表負數, 在 Visual Basic 中, 負號(-) 先優先順序僅次於 ^, 但優先於其它所有算術運算, 例如:

43 使用負號 所以如果將負號加入前面所列的優先順序表, 則結果如下:

44 使用負號 請試寫出下列運算式的計算結果, 寫完後再用 Visual Basic 程式驗證之。 (A) 100 Mod 30 \ 4
(A) 2 (B) (C) -27 (D) 0.5

45 使用負號

46 2-4 語法錯誤 不管是初學程式語言還是程式高手, 在撰寫程式時難免會出錯, 例如打錯字或漏打符號等, 造成語法錯誤(Syntax Error)。 當我們在VB 編寫程式, VB 會即時檢查我們輸入的內容, 若發現我們輸入的敘述有問題, 就會在有問題的地方, 以波浪狀的底線標示出來:

47 語法錯誤

48 語法錯誤 除了以波浪狀底線表示語法問題, 對某些語法錯誤, VB 也會用如下的底線表示錯誤:

49 語法錯誤 練習使用 VB 的錯誤提示功能, 查詢錯誤資訊。 請建立一新專案 Ch02-02, 並輸入如下程式:

50 語法錯誤 VB 會在兩個 Console.WriteLine() 都標示代表錯誤的波浪狀底線, 只要將滑鼠移到線上面, VB 就會顯示相關資訊, 例如:

51 語法錯誤 上述適用於查看單一個錯誤。若想一次瀏覽程式中所有的錯誤資訊, 可執行『檢視/ 錯誤清單』命令, 在 VB 中就會出現如下的窗格:

52 語法錯誤 如果由 VB 提示的訊息, 無法解除疑惑、您仍不知應如何修改程式, 此時可求助於 VB 的線上說明:

53 語法錯誤 此時會開啟 VB 的線上說明文件 ( 稱為 MSDN Library), 其中會提示可能的修改方式。您可依敘述的內容, 選擇合適的方法,試著排除程式的錯誤。

54 語法錯誤

55 語法錯誤 對 Visual Basic 初學者而言, 可能無法完全瞭解文件中說明文字的意義, 這是正常現象。日後對 Visual Basic 的知識逐漸擴增, 自然就能明白文件要表達的內容。

56 語法錯誤 程式除了錯誤外, 也可會出現『警告』(Warning), 出現『警告』時, 表示 VB 雖然不認為語法有錯誤, 但覺得該敘述的用法不恰當, 可能會造成執行結果錯誤。如果確定程式內容沒有錯誤, 可不理會『警告』訊息。

57 程式有錯誤時亦無法執行程式 在程式已出現底線時, 若不理會而逕按[F5] 鍵或[Crtl] + [F5]鍵執行程式, 則會出現如下訊息:

58 語法錯誤 在此也要提醒讀者一點, VB 的語法分析程式, 雖能替我們找出語法錯誤, 但有時候它所提示的訊息, 並非對等於我們所犯的錯誤。

59 語法錯誤 例如剛才範例中的 Console.WriteLine(Visual Basic)敘述, 我們是想輸出 "Visual Basic" 字串, 但是忘了在字串前後加雙引號, 但 VB 提示的資訊是:

60 語法錯誤 由於沒有代表字串的雙引號, 所以 VB 把原本是字串的文字當成識別字了, 且因程式中未定義識別字 Visual, 所以 VB 顯示的訊息是『名稱 "Visual"未宣告』, 好像在程式中宣告這個名稱就可以解決(下一節會介紹如何宣告變數)。但依我們設計程式的原意, 正確的解決方式是加上雙引號, 而不是真的去宣告識別字。 不過, 儘管 VB 提示的訊息與實際的錯誤原因有時會有些出入, 但至少 VB 能告知我們的程式有問題, 在這種情況下就要自行判斷造成語法錯誤的真正原因, 並修正。

61 2-5 程式註解 雖然程式是給電腦看的, 但很多情況下『人』也要看程式 (例如系統的維護人員), 所以為了方便人們閱讀程式, Visual Basic也允許我們將『給人看』的文字加在程式之中, 也就是註解(Comment)。

62 程式註解 要在 Visual Basic 中加入註解, 需以單引號 (') 為開頭, 例如:

63 程式註解 在單引號之後的所有文字, 都會被 Visual Basic 視為註解, 而不會被當成程式內容。在編譯程式時, Visual Basic 編譯器會忽略註解文字, 不予編譯;而在 VB 中編寫註解時, VB 也會將以單引號開頭的註解文字, 自動以綠色顯示:

64 程式註解 由於註解是從單引號『開始』, 所以我們可將註解加在敘述後面:
但要注意不可加在敘述之前, 因為這樣會讓一整行都變成註解, 而非敘述:

65 程式註解 不過在測試程式的過程中, 我們也可利用標示註解的方式, 將我們暫時不想執行的程式標為註解, 例如:
在本書後續各章的程式範例, 都會利用註解的方式加上適當的程式說明, 讓讀者瞭解程式的運作。

66 2-6 使用變數 Visual Basic 程式中的資料可分為變數(Variable) 和常數(Constant)兩種, 變數的意思就是說, 在程式執行過程中可隨時變更其值。例如:

67 使用變數 而常數則是在程式執行過程中, 其值不會變動的資料。例如前面學過的文數字, 當我們在程式中寫下一個文數字, 其值即固定不會變化:

68 宣告變數 剛才的例子中, 有一個『宣告變數』的敘述 "Dim var1", 宣告變數的目的就相當於是定義一個識別字, 之後 Visual Basic 才會認得這個識別字, 知道它是我們定義的變數。如果少了這行敘述, 在 VB中就會看到上一節看過的波浪狀底線。

69 宣告變數 宣告變數的敘述很簡單, 首先是以關鍵字 Dim 為開頭, 後面接著就是我們自己命名的變數名稱。命名規則就是 2-1 節所提的識別字命名規則, 通常我們會用能代表變數意義的英文單字或縮寫, 來為變數取名字。以下都是合法的宣告變數敘述:

70 宣告變數 我們也可在同一行敘述中同時宣告多個變數, 此時只要用逗號將變數名稱隔開即可:

71 變數的應用 在數學上變數常用於公式中代表可任意替代的數, 例如矩形面積公式是『長 ×寬』, 如果用 x 代表長、y 代表寬, 就可寫成:
知道這樣的公式, 以後遇到任何長寬的矩形, 我們都可以算出其面積。在程式中也是如此, 我們可用變數儲存要計算的值, 再用運算式算出結果, 請做以下的練習。

72 變數的應用 用 Visual Basic 的變數, 撰寫計算矩形面積的程式。 請建立新專案 Ch02-03。
step 2 我們要定義兩個變數 height、width 來代表矩形的長、寬,然後再用它來計算矩形面積, 請輸入以下程式:

73 變數的應用 於 VB 中輸入『Dim height, width』這行宣告變數的敘述後, 在輸入這些變數名稱開頭的字元時, Intellisense 也會在候選清單中列出變數名稱供我們選用。

74 變數的應用 按[Crtl] +[F5] 鍵, 就會看到如下的執行結果:

75 變數的應用 電腦程式的功能之一, 就是要讓我們可重覆使用, 例如計算面積的公式只寫一次就好, 以後只要輸入長、寬值, 程式就會替我們算出『長×寬』的結果。 而變數的功能之一就是儲存使用者輸入的、或由檔案/資料庫讀取到的資料, 以供程式進一步處理。不過我們還沒學到如何取得輸入、讀取檔案等, 因此暫時在程式中直接指定變數值。

76 指定運算子 前面算術運算、變數的應用概念, 和我們已熟悉的數學都相同, 但『=』在 Visual Basic 中的意思, 則和數學的等號大大不同。在Visual Basic 中, = 稱為指定(Assign) 運算子, 它意思是『將等號右邊的值, 指定給等號左邊的變數』。例如範例程式 Ch02-03 第 2、3 行的敘述:

77 指定運算子 第二個敘述並不是說『height 等於 8』, 而是將等號右邊的 8 指定給等號左邊的變數 height, 說得白話一點就是:『讓 height 變成8』。所以『=』的左邊一定要放可改變其值的變數, 而不可像普通數學算式的等號用法:

78 指定運算子 由底下的運算式, 可明顯看出 Visual Basic 中的『=』, 和數學的『等號』不同之處:

79 指定運算子 在數學課中寫出這樣的式子是不合理的, 但在 Visual Basic 中則是合理的。它表示將 height 目前的值加 2 之後, 再指定給 height 自己;簡單的說, 就是讓 height 變數所存的值加 2。

80 指定運算子 熟悉指定運算子的作用。 請建立新的主控台應用程式專案 Ch02-04。 輸入如下程式內容:

81 指定運算子 按[Crtl] +[F5] 鍵, 就會看到如下的執行結果:

82 指定運算子

83 變數初值的設定 變數在宣告時, 可以同時指定其初值 (Initial Value), 例如: 當然也可以同時指定多個變數的初值:

84 2-7 接續符號『_』與存取成員符號『.』 除了前面看過的算數運算和指定 (=) 等符號外, 在 Visual Basic 中還有一些特殊符號, 本節先介紹兩個較常用的符號。

85 敘述接續符號『__』 由於 Visual Basic 敘述是以行為單位, 有時敘述中用到的類別名稱、變數名稱既多且長, 就會使一行敘述變得很長, 在編輯和閱讀時都不太方便。在這種情況下, 我們就可用底線符號 (__) 將同一敘述分成多行。 例如:

86 敘述接續符號『__』 這個敘述就相當於將下面這個敘述拆成 3 行來寫:
將敘述分成多行時, 只要在原本可插入空白的地方, 都可以分割。例如, 剛才的敘述也可寫成以下形式 (不過閱讀上較不自然):

87 敘述接續符號『__』 但如果原本不能插入空白的地方, 就不可插入底線字元換行;此外底線和最後一個字元之間, 一定要用一個空白字元隔開。例如下列都是錯誤的用法:

88 存取成員『.』 『.』這個符號除了在文數字中表示小數點外, 還有另一個用法。『.』 的英文 "dot" 發音近似『的』, 它的另一個用法就是用來表示『的』。例如我們已看過很多次的 Console.WriteLine(), 它的意思就表示『Console 類別的 WriteLine() 方法』。

89 存取成員『.』 在前一章介紹過, 類別中的方法和屬性統稱為成員 (Member), 而『.』符號就是要存取類別的某個成員。例如 Console 就是主控台類別, 而我們要用此類別提供的 WriteLine() 方法將字串輸出到文字模式視窗中, 就要用『.』來連接 Console 和 WriteLine(), 成為Console.WriteLine()。

90 存取成員『.』 在 VB 中輸入程式時, 只要是在類別、物件的識別字後接著輸入『.』, 其 Intellisence 功能就會自動列出可使用的成員名稱:

91 存取成員『.』 我們可以把『.』看做是從屬關係的連接符號, 『.』後面的識別字是附屬於前面的識別字, 或者說『.』前面的識別字擁有後面的識別字。


Download ppt "第 2 章 Visual Basic 初步."

Similar presentations


Ads by Google