Presentation is loading. Please wait.

Presentation is loading. Please wait.

VB 2005資料型別與運算子.

Similar presentations


Presentation on theme: "VB 2005資料型別與運算子."— Presentation transcript:

1 VB 2005資料型別與運算子

2 變數與資料型別 我們都知道執行程式時,必須先將程式和資料載入電腦的記憶體(RAM)中才能執行,若該資料會隨著程式的執行而變更其值,我們稱之為變數(Variable)。 程式中的資料是如何放入記憶體呢?

3 變數與資料型別 在VB 2005的程式中宣告(Declare)一個變數並賦予變數名稱後,VB 2005會向系統要求一個空的記憶體空間給該變數使用,用來暫時存放程式執行過程中或最後結果,至於所保留記憶體位址空間的大小視所使用的資料型別而定。 所以,熟悉一個語言的資料型別和變數的活用是學習程式設計的第一步驟。

4 變數的命名規則 程式中若使用變數來存放資料時,必須先為該變數命名,以方便在程式中參用,VB 2005提供了下列有關變數的命名規則,在編寫程式時必須遵守,以免程式編譯時發生錯誤:

5 變數的命名規則 1, 變數名稱第一個字元允許以大小字母、 _、 或 中文名稱開頭,後面的字元可接A-Z﹑a-z﹑0-9或 _ 等字元。若第一個字元是 _ 開頭,後面必須接字母或數字。為避免混淆建議不要以中文字當變數名稱。 2, 撰寫程式時不允許保留字(Reserve Word)拿來 當變數使用。 保留字又稱關鍵字(Keyword),是VB 2005 事先賦予某個字做特別的用途,以供程式設計呼叫或使用。

6 變數的命名規則 變數名稱在VB 2005是大小寫不分 為提高變數名稱的可讀性與易記,建議變數的命名最好有意義﹑名稱最好和資料有關係
並且以小寫開頭若有兩個以上單字合併成一個變數名稱可在第二單字以後每個單字的第一個字元以大寫表示,或在每個單字間加底線,或每個單字第一個字元以大寫來區隔。 如:電話號碼以telNo、tel_no當做變 數名稱。

7 變數的命名規則 下面示範變數名稱的命名,下列變數命名方式是正確的: goodLuck (兩個單字組成的變數, 第一個單字以小寫開頭)
seven_eleven (兩個單字中間可使用_區隔) _score (第一個字也可以使用_)

8 變數的命名規則 下列識別字命名方式是錯誤的: goodLuck 7_eleven B&Q As _ (中間不能使用空格)
(第一個字元不可以是數字) B&Q (&是運算子,不可以當做變數名稱的字元) As (As是保留字) _ (不能單用一個 _ 字元)

9 變數的種類與資料型別

10 變數的種類與資料型別

11 變數的種類與資料型別

12 變數的宣告和初值設定 VB 2005的程式中,若有使用到變數,必須先使用 Dim宣告變數的資料型別 若在宣告時未設定其初值
數值變數預設為0 字串變數預設為 ”” 空字串 布林變數預設為False 下面簡例使用Dim示範宣告變數:

13 變數的宣告和初值設定 在以前VB的版本若變數未經宣告就直接使用,系統內定為自由型別變數(Variant)。
但是在VB .NET或VB 2005中,變數必須先經過宣告確定其資料型別後,方可使用該變數,主要是為了避免因資料間做資料型別轉變時發生錯誤。 當然在宣告的同時也可如上面敘述直接使用「=」指定運算子(Assignment Operator)來設定初值。 多個變數一起宣告,變數之間使用逗號加以區隔。

14 數值變數

15 數值變數 下面我們提出三點要注意的地方: 1.Single單精確度變數資料型別的數值資料若超過7位數(如 ),會以科學記號方式處理(即 3.12108。Double倍精確度變數資料型別的數值資料若超過15位數會以科學記號表示。兩者的科學記號表示處理,如下: aE±c 其中: a:表示數值,其範圍為 1≦a<10 E:代表底數10 c:代表10的指數值。若為正,前面『+』號會省略;若負值,則前面加『-』。

16 數值變數 2. 貨幣型別變數是整數型別的延伸,它以128 Bits(16 Dim num As Decimal num = ‘將數值指定給num貨幣變數 Console.WriteLine(num) ‘主控台印出

17 數值變數 3.單精確度變數與貨幣型別變數使用的差異 Dim x As Single=1.25 , y As Single =1.2
Console.WriteLine(x-y) 結果印出 而不是0.05 欲得到0.05正確的結果必須將上面第一行宣告改為: Dim x As Decimal =1.25, y As Decimal =1.2

18 字元變數(Char)與字串變數(String)
在VB .NET或VB 2005的字串變數所佔用的記憶體位址大小會視字串長度而定。 字串資料頭尾必須使用雙引號框住,但要注意在編輯字串資料時,若在字串的右邊缺少雙引號,編輯器會自動幫你補上。 若是在字串的左邊缺少雙引號,編輯器則不會自動補上。

19 字元變數(Char)與字串變數(String)
[例1]宣告lastName為字元變數預設值為“張”;middleName為字串變數預設值為 “David”,使用 + 號做字串合併,並在主控台顯示 “David張您好!”。其寫法如下: Dim lastName As Char = "張", middleName As String = "David" Console.WriteLine( middleName + lastName + "您好!") [例2]宣告name為字串變數預設值為 ”張Sir”;也可以使用 & 號做字串合併,並在主控台顯示 “張Sir您好!”。其寫法如下: Dim name As String = "張Sir" Console.WriteLine(name & "您好!")

20 日期變數(Date) 此變數用來存放日期資料,在日期資料前後要加「#」。 譬如下列三種寫法均代表日期2006/6/1:
 #June 1, 2006#  #1 Jun 06#  #6/1/2006#

21 日期變數(Date) [例] 宣告birthday為日期變數,並設其初值為 『2006 /3/31下午11:34: 56』其寫法如下:
Dim birthday As Date '宣告birthday為日期變數 birthday=#3/31/ :34:56 PM#‘將西元2006年3月31日下午11時34分56秒指定給birthday Console.WriteLine(birthday) '顯示「2006/3/31

22 布林變數(Boolean) 此變數只有True(真) 或False(假)兩種結果,主要用來當作旗標(Flag),作為流程判斷用。
[例] 宣告openFlag為布林變數,其初值設為True,將布林變數作加減,並將結果顯示在主控台上,其寫法如下: Dim openFlag As Boolean openFlag=True ‘上述兩行可合併為Dim openFlag As Boolean=True Console.WriteLine(10+openFlag) 'openFlag自動轉成數值-1,結果顯示9

23 物件型別變數(Object) 為程式需要,該變數允許為任意型別的資料,以方便程式中隨時更改其型別而不發生錯誤將此類的變數宣告成「物件型別變數」。 此種變數裡面可存放數值、字串,甚至物件,很有彈性但要付出多佔用記憶體以及運算速度變慢的代價,宣告時宜三思。 例如:將car宣告成物件型別變數,其寫法如下: Dim car As Object Dim car ' 若變數沒有宣告型別,則預設為物件型別變數 使用Dim car宣告變數時,省略As和資料型別,則該變數視為物件型別變數。

24 物件型別變數(Object) [例] 物件型別變數的資料型別轉換 Dim var1 As Object ‘ 宣告var1是物件型別變數
var1 = ‘ var1變成整數型別變數 Console.WriteLine(var1) ‘ 顯示123 var1 = “Hello” ‘ var1變成字串型別變數 Console.WriteLine(var1) ‘ 顯示Hello var1 = ‘ var1變成單精確度型別變數 Console.WriteLine(var1) ‘顯示12.5

25 常數 程式執行過程中有些值在程式中會重複出現,但其值不會被改變,VB 2005允許您使用一個有意義的名稱來取代這些不會改變的數字或字串,我們稱為「常數」(Constant)名稱。 譬如:稅率、圓周率、…等、或常用的字串、日期,這時我們可以使用「常數」名稱來代替這個常值。

26 常數 「常數」與「變數」雖然都有名稱,但兩者性質不同。在程式執行過程中,「變數」可能會隨時因敘述指定常值而更改變其值。
而「常數」一旦經過宣告使用,在整個程式流程中會一直保有當初宣告時所指定的常數值。 常數名稱是用Const來宣告的,在宣告的同時立即指定一個常值做為該「常數」的常數值,在程式中只要使用到這個常值,都可以此「常數」名稱來代替。

27 常數 使用常數可增加程式可讀性。 若在程式執行過程中,將其值不變的常值,使用常數名稱來代替,在閱讀程式時較能體會出該常值的意義而且維護程式碼時易修改

28 常數 譬如:程式中有多處敘述需要使用到圓周率3.14,就必須在這些敘述中鍵入3.14。
當須將圓周率3.14改成 時,就得逐行 將它改成 。 若事先在程式開頭使用Const 宣告一個常數(名稱為PI),並指定常數值為 3.14,而在程式中需要使用到圓周率的地方直接鍵入 PI。

29 常數 當您必須將圓周率 3.14 改成 3.14159時,只須更改 Const 宣告 PI 常數的常數值即可。
Dim r As Integer r = 10 Label1.Text = "2 * PI * r = " & (2 * PI * r)

30 變數 設計程式時,要特別注意變數一定要使用 Dim 事先宣告,否則,在編輯程式過程碰到要存取該變數時,在該變數正下方會出現藍色波浪底線,告知此變數尚未使用Dim宣告。 同時為了避免有些變數再程式執行時佔用時間很短,卻一直保留在記憶體,不但浪費記憶體空間而且易誤用。 因此,VB 2005 對變數按照變數在程式中的宣告位置,將變數區分為全域變數(Global Variable)與區域變數(Local Variable),來決定該變數的有效範圍(或稱生命期):

31 全域變數 全域變數(Global Variable)
若將變數宣告在函式外面,VB 2005 視為全域變數,這種變數的有效範圍(生命期)是由該變數宣告開始至程式結束,一直佔用記憶體,供整個 VB 2005存取。

32 區域變數 區域變數(Local Variable) 若將變數宣告在函式裡面或在某個程式區塊中(如迴圈中),即屬於區域變數。
這類變數的有效範圍僅限在該函式(或區塊)的範圍內存取,離開該範圍該變數便自動由記憶體中釋放掉。 因此,區域變數在該有效範圍外,便無法存取該變數。

33 VB 2005運算子 運算子(Operator)是用來指定資料做何種運算。 運算子按照運算時所需要的運算元(Operand) 數目分成:
單元運算子(Unary Operator)如:-5 二元運算子(Binary Operator)如:a+b。 (a + b) 為一個加法運算式(Expression) 其中 a、b為運算元,加號為運算子,由於加號 運算子在運算時需要兩個運算元,因此稱為 二元運算子。

34 算術運算子

35 關係運算子 「關係運算式」可用來比較數值或字串的大小。
「關係運算式」經過運算之後,其結果會傳回布林值真(True)或假(False),透過其結果來決定程式的執行流程。 下表是VB 2005所提供的關係運算子與關係運算式:

36 [註1]:Like運算子樣式包括: Like運算子  ? :該位置字元允許使用任何單一字元。  # :該位置字元只允許使用數字字元。
 * :該位置字元後面接的字元數不拘或為0個。  [charlist]:允許使用charlist內任何單一字元。  [!charlist]:不允許使用charlist內任何單一字元。

37 Is運算子 [註2]:Is運算子是一種物件參考比較運算子。它不會比較物件或物件值;而是只進行檢查,判斷兩個物件參考是否代表同一物件。
Dim myObject, otherObject As New Object Dim yourObject, thisObject, thatObject As Object Dim myCheck As Boolean yourObject = myObject thisObject = myObject thatObject = otherObject myCheck = yourObject Is thisObject'Returns True. myCheck = thatObject Is thisObject'Returns False. myCheck = myObject Is thatObject 'Returns False, if myObject is not thatObject.

38 IsNot運算子 3:IsNot運算子的功能與Is相反,它可以用來判斷兩個物件參考是否代表不同物件。 4:觀察Like子句樣式用法
Dim chkFlag As Boolean  chkFlag = "A" Like "A" ' True  chkFlag = "a" Like "A" ' False  chkFlag = "A" Like "AAA" ' False  chkFlag = "Windows" Like "W*s" ' True  chkFlag = "W" Like "[A-Z]" ' True  chkFlag = "W" Like "[!A-Z]" ' False  chkFlag = "y2k" Like "y#k" ' True  chkFlag = "aM5b" Like "a[L-P]#[!c-e]"' True  chkFlag = "Wish168" Like "W?s*" ' True  chkFlag = "Wish168" Like "w?s*" ' False

39 邏輯運算式 「邏輯運算式」一般都是用來連結多個關係運算式,它可以用來測試較複雜的條件。
譬如:使用age變數當年齡,若條件為:10<age20 (大於10歲且小於等於20歲),其邏輯運算式的寫法如下: If (age>10) And (age<=20) then 其中(age>10)和(age<=20)兩者為關係運算式,兩者間利用And邏輯運算子來連結。同樣地,邏輯運算式的運算結果只有真(True)或假(False)。

40 And、Or、Not、XOR邏輯運算子 下表中A 和 B 兩個都是運算式,每個運算式的結果只有True和False兩種結果,因此有下列四種組合。下表列出經過 And、Or、Xor、No t四種邏輯運算後所有可能的結果:

41 AndAlso/OrElse邏輯運算子 下表中A和B兩個都是運算式,每個運算式的結果只有True和False兩種結果,因此有下列三種組合。下表列出經過 AndAlso、OrElse 兩種邏輯運算後所有可能的結果:

42 AndAlso/OrElse邏輯運算子 [例1] 若a 值為5,求下列邏輯運算後的結果: [例2]
(a >1) And (a<=10) '檢查 1< a <10 結果為真 (a<1) Or (a>=5) ‘檢查a是否小於1或是大於等於5結果為True [例2] Dim x As Integer = 7 Dim y As Integer = 5 Dim z As Integer = 3 Dim flag As Boolean f lag = x > y AndAlso y > z ' True 第二運算式有評估 flag = y > x AndAlso y > z ' False 第二運算式不評估 flag = x > y AndAlso z > y ' False 第二運算式有評估 flag = x > y OrElse y > z ' True 第二運算式不評估 flag = y > x OrElse y > z ' True 第二運算式有評估 flag = y > x OrElse z > y ' False第二運算式有評估

43 複合指定運算子(Assignmemt Operator)
程式中,需要指定某個變數的值、將某個變數或某運算式的結果指定給某個變數,就必須使用指定運算子來完成。 指定運算子是以等號(=)來表示。 若一個指定運算子的兩邊有相同的變數名稱可採複合指定運算子(Combination assignment operator)來表示。 譬如:i=i+5為一個指定運算式,由於指定運算子等號兩邊都有相同的變數i,可改寫 i+=5。 要記得等號左邊的運算元必須為變數、陣列元素、結構成員、或參考型別變數,不可為運算式或常數。

44 複合指定運算子(Assignmemt Operator)

45 複合指定運算子(Assignmemt Operator)
[例1] Dim num1 As Integer = 16 Dim num2 As Integer = 8 Dim num3 As Integer num3=num1 & num2 ’ num3結果為 ‘ &前面一定要有空白,num3=num1 & num2 改成 ‘ num3=num1+num2 ,num3的結果為24 [例2] Dim var1 As String = "921 " Dim var2 As String = "大地震!" var1 &= var 'var1 結果為 "921 大地震!" ' 若將 var1 &=var2 改成 var1+=var2, ' 則 var1 的結果都是 "921 大地震!"。

46 運算子的優先順序

47 運算子的優先順序


Download ppt "VB 2005資料型別與運算子."

Similar presentations


Ads by Google