VisualBasic程式设计范例教本课件_第1页
VisualBasic程式设计范例教本课件_第2页
VisualBasic程式设计范例教本课件_第3页
VisualBasic程式设计范例教本课件_第4页
VisualBasic程式设计范例教本课件_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章變數、資料型別與運算子第3章變數、資料型別與運算子1第3章變數、資料型別與運算子3-1變數與資料型別的基礎3-2變數的命名與宣告3-3資料型別3-4運算式與運算子3-5資料型別的轉換第3章變數、資料型別與運算子3-1變數與資料型別的基礎23-1變數與資料型別的基礎-圖例在程式語言的「變數」(Variables)可以視為是一個擁有名稱的盒子,能夠暫時儲存程式執行時所需的資料,如下圖所示:3-1變數與資料型別的基礎-圖例在程式語言的「變數」(Va33-1變數與資料型別的基礎-說明兩個盒子名稱分別是變數名稱name和height,在盒子中儲存的資料"VB程式"和100稱為「字面值」(Literals)或稱為「常數值」(Constants),也就是數值、字元或字串等常數值,如下所示:10015.3"VisualBasic程式"現在回到盒子本身,盒子形狀和尺寸決定儲存資料,對比程式語言來說,形狀和尺寸就是變數的資料型別(DataTypes)。3-1變數與資料型別的基礎-說明兩個盒子名稱分別是變數名稱43-2變數的命名與宣告3-2-1VisualBasic的命名規則3-2-2變數的宣告3-2-3指定敘述ViLLE–1.1指定敘述與輸出變數值3-2-4Option指令敘述3-2-5符號常數的使用3-2-6列舉資料型別Enumeration3-2變數的命名與宣告3-2-1VisualBasic53-2變數的命名與宣告對於高階程式語言來說,程式是由資料(Data)和指令(Instructions)組成,如下所示:資料部分:變數(Variables)和資料型別(DataTypes)。指令部分:運算子、第5和6章的流程控制(ControlStructures)和第7章的副程序(Subroutines)。在程式碼除了程式語言的「關鍵字」(Keywords,或稱保留字)外,大部分都屬於程式設計者自訂的元素名稱,稱為「識別字」(Identifier),例如:變數、程序、函數和物件名稱等。3-2變數的命名與宣告對於高階程式語言來說,程式是由資料(63-2-1VisualBasic的命名規則-

命名規則識別字不可使用VisualBasic關鍵字或系統的物件名稱。名稱必須是英文字母或底線"_"開頭,如果以底線開頭,至少需要一個其他英文字母或數字。名稱長度不可超過16383個字元,不區分英文字母大小寫,abc和ABC代表同一個名稱。名稱中間不能有句點"."、運算子(例如:+-*/^等)或空白,只能是英文字母、數字和底線。在宣告的有效範圍內必須唯一,有效範圍請參閱第7章的程序和函數。3-2-1VisualBasic的命名規則-

命名規則識73-2-1VisualBasic的命名規則-

命名範例一些合法的VisualBasic元素名稱的範例,如下所示:def,no_123,size1,_123,_abcCar,count,height,s1,s2一些不合法名稱,因為只有底線和以數字開頭,如下所示:_,123abc3-2-1VisualBasic的命名規則-

命名範例一83-2-1VisualBasic的命名規則-匈牙利命名法匈牙利命名法是將變數的前3個字元視為資料型別,依不同資料型別加上字首字串,如下表所示:3-2-1VisualBasic的命名規則-匈牙利命名法93-2-1VisualBasic的命名規則-CamelCasing命名法CamelCasing命名法是第1個英文字小寫之後為大寫,變數、程序/函數的命名可以使用不同英文字母大小寫的組合,如下表所示:3-2-1VisualBasic的命名規則-Camel103-2-2變數的宣告-說明程式語言的變數是儲存程式執行中的一些暫存資料,程式設計者只需使用變數名稱就可以存取記憶體位址的資料。簡單的說,它就是使用有意義的名稱來代表數字的位址。3-2-2變數的宣告-說明程式語言的變數是儲存程式執行中的113-2-2變數的宣告-屬性程式的變數擁有一些屬性,可以用來描述變數的組成元素,如下表所示:屬性名稱說明名稱(Name)變數名稱是一個標籤,可以在程式中識別出它是一個變數位址(Address)在記憶體中儲存此變數的記憶體位址尺寸(Size)變數佔用的記憶體尺寸,以位元組為單位型別(Type)變數儲存資料的資料型別值(Value)變數值,也就是在記憶體位址中儲存的資料壽命(Lifetime)在執行程式時,變數存在的期間,有些變數是在整個執行過程中都存在;有些變數是在執行期間自動或由程式碼建立範圍(Scope)在程式碼的哪些程式敘述可以存取此變數3-2-2變數的宣告-屬性程式的變數擁有一些屬性,可以用來123-2-2變數的宣告-變數的宣告VisualBasic變數是使用Dim關鍵字進行宣告,如下所示:Dimvolumn宣告變數volumn預設的資料型別是Object,可以儲存各種資料型別的值。如果宣告的變數有指定資料型別,我們需要使用As關鍵字來宣告變數的資料型別,如下所示:Dimheight,widthAsInteger如果同一列的2個變數屬於不同資料型別,也可以分別宣告其資料型別,如下所示:DimnameAsString,depthAsInteger3-2-2變數的宣告-變數的宣告VisualBasic變133-2-2變數的宣告-變數的初值如果需要,我們在宣告變數時可以同時指定初值,如下所示:DimnameAsString,depth=100DimtitleAsString="VisualBasic程式設計"上述程式碼宣告字串變數name和title,並且指定字串變數title的初值。變數depth沒有指定型別;但指定初值100,2008之後版本會自動以初值指定資料型別為整數。3-2-2變數的宣告-變數的初值如果需要,我們在宣告變數時143-2-2變數的宣告-VisualBasic專案VisualBasic專案:Ch3-2-2在主控台應用程式宣告6個變數,分別指定變數初值後顯示變數值,如下圖所示:3-2-2變數的宣告-VisualBasic專案Visu153-2-3指定敘述-說明在VisualBasic程式宣告變數後,就可以使用指定敘述來指定變數值,也就是"="等號運算子,如下所示:Dimdepth,height,widthAsIntegerDimnameAsStringheight=35width=57name="陳會安"上述程式碼在宣告整數和字串型別的變數後,使用指定敘述來指定變數值。3-2-3指定敘述-說明在VisualBasic程式宣告163-2-3指定敘述-圖例在指定敘述“=”等號左邊的變數稱為「左值」(Lvalue),指的是變數的位址(Address)屬性,如果變數在等號的右邊稱為「右值」(Rvalue),這是變數的值(Value)屬性。目前變數的記憶體圖例,如下圖所示:3-2-3指定敘述-圖例在指定敘述“=”等號左邊的變數稱為173-2-3指定敘述-VisualBasic專案VisualBasic專案:Ch3-2-3在主控台應用程式宣告數個變數後,使用指定敘述來指定變數值,如下圖所示:3-2-3指定敘述-VisualBasic專案Visua18ViLLE–1.1

指定敘述與輸出變數值請啟動ViLLE,在【一.變數與運算子】目錄下,選【1.指定敘述與輸出變數值】,按【Run】鈕模擬執行此範例程式,如下圖所示:ViLLE–1.1指定敘述與輸出變數值請啟動ViLLE193-2-4Option指令敘述-1OptionExplicit:設定程式變數是否一定需要事先宣告,Off表示不用宣告;強迫宣告需設為On,此為VBE的預設值,如下所示:OptionExplictOnOptionStrict:指定程式是否使用嚴格的型別檢查,例如:當執行型別轉換進行嚴格檢查,預設值Off表示不嚴格檢查。如果需要嚴格檢查,請設為On,如下所示:OptionStrictOff3-2-4Option指令敘述-1OptionExpli203-2-4Option指令敘述-2OptionCompare:指定字串比較方式是使用二進位或文字比較,可以是Binary(預設值)或Text,如下所示:OptionCompareBinaryOptionInfer:如果指定OptionExplictOff設定程式變數不需事先宣告時,我們可以再指定OptionInfer為On(預設值),讓VisualBasic編譯器依變數第1次指定的值來自動決定最佳的資料型別;值如果為Off,此時的資料型別為Object,如下所示:OptionExplictOffOptionInferOn3-2-4Option指令敘述-2OptionCompa213-2-4Option指令敘述-

VisualBasic專案VisualBasic專案:Ch3-2-4在主控台應用程式將VBE專案的OptionExplicit設為Off,和OptionInfer為On後,就可以不宣告變數,隨時在程式碼中使用變數,讓VisualBasic編譯器自動決定最佳的資料型別,如下圖所示:3-2-4Option指令敘述-

VisualBasic223-2-5符號常數的使用-說明「符號常數」(SymbolicConstants或NamedConstants)是在程式碼使用名稱來取代固定數字或字串,與其將符號常數視為變數,不如說它是名稱轉換,將一些數值的值使用有意義名稱來取代。VisualBasic語言本身就擁有一些內建符號常數,例如:vbTab、vbNewLine等,不過使用者可以自行使用Const關鍵字建立符號常數,請注意!符號常數在宣告時需要指定其值,如下所示:ConstMAX_WIDTH=150ConstPI=3.14159263-2-5符號常數的使用-說明「符號常數」(Symboli233-2-5符號常數的使用-

VisualBasic專案VisualBasic專案:Ch3-2-5在主控台應用程式宣告符號常數,並且在運算式使用符號常數來計算圓面積,如下圖所示:3-2-5符號常數的使用-

VisualBasic專案V243-2-6列舉資料型別Enumeration-說明如同符號常數使用名稱取代固定數值,「列舉常數」(Enumerations)是使用一組名稱來取代一組整數資料型別的數值。它是使用Enum/EndEnum程式敘述來進行宣告,如下所示:EnumColorAsIntegerWhite=1RedBlue=5GreenBlack=GreenEndEnum3-2-6列舉資料型別Enumeration-說明如同符號253-2-6列舉資料型別Enumeration-VisualBasic專案VisualBasic專案:Ch3-2-6在主控台應用程式宣告列舉常數Color,然後顯示各列舉常數成員的對應值,如下圖所示:3-2-6列舉資料型別Enumeration-Visual263-3資料型別3-3-1VisualBasic的基本資料型別3-3-2整數資料型別3-3-3浮點數資料型別3-3-4布林資料型別3-3-5字串資料型別3-3-6字元資料型別3-3-7日期/時間資料型別3-3資料型別3-3-1VisualBasic的基本資273-3資料型別VisualBasic語言的資料型別是指變數的記憶體位址儲存的資料種類,VisualBasic資料型別可以分為「數值型別」(ValueTypes)和「參考型別」(ReferenceTypes)兩種資料型別,如下所示:數值型別:變數值儲存的是字面值,它是記憶體儲存的內容。VisualBasic語言提供Byte、Short、Integer、Long、Single、Double、Char和Boolean等基本資料型別。參考型別:變數值並不是記憶體內容,而是記憶體位址。例如:Module、Class、String和Array陣列等,在第8章說明陣列Array;附錄A說明Class。3-3資料型別VisualBasic語言的資料型別是指變283-3-1VisualBasic的基本資料型別-

說明在宣告VisualBasic變數時不一定需要指定資料型別,如果沒有指定資料型別,預設資料型別是Object。Object是所有VisualBasic資料型別的基礎資料型別,換句話說,這個變數可以儲存各種不同資料型別的資料。3-3-1VisualBasic的基本資料型別-

說明在293-3-1VisualBasic的基本資料型別-種類1資料型別說明位元組範圍Boolean布林值2True或FalseByte正整數10~255SByte整數1-128~127Char字元20~65535Short短整數2-32,768~32,767UShort正短整數20~65,535Integer整數4-2,147,483,648~2,147,483,647UInteger正整數40~4,294,967,295Long長整數8-9,223,372,036,854,775,808~9,223,372,036,854,775,807ULong正長整數80~18,446,744,073,709,551,6153-3-1VisualBasic的基本資料型別-種類1資303-3-1VisualBasic的基本資料型別-種類2資料型別說明位元組範圍Single單精度的浮點數4負值範圍為-3.4028235E+38~-1.401298E-45,正值的範圍為1.401298E-45~3.4028235E+38Double雙精度的浮點數8負值範圍為-1.79769313486231570E+308~-4.94065645841246544E-324,正值範圍為4.94065645841246544E-324~1.79769313486231570E+308Decimal數值160~+/-79,228,162,514,264,337,593,543,950,335沒有小數,0~+/-7.9228162514264337593543950335帶28位小數,最小的非零值為+/-0.0000000000000000000000000001(+/-1E-28)Date日期80001年1月1日~9999年12月31日String字串依平台0~2百萬Unicode字元Object物件4物件型別變數可以儲存各種資料型別的值3-3-1VisualBasic的基本資料型別-種類2資313-3-2整數資料型別-說明「整數資料型別」(IntegralTypes)是指變數儲存的資料是整數沒有小數點。依整數資料長度的不同(即佔用的記憶體位元數),可以分為Byte、SByte、Char、Short、UShort、Integer、UInteger、Long和Ulong等整數資料型別。Byte、Ushort、Uinteger和Ulong型別是正整數,其他可以是正整數或負整數,程式設計者能夠依照整數範圍決定宣告的變數型別。3-3-2整數資料型別-說明「整數資料型別」(Integr323-3-2整數資料型別-

十、八和十六進位在程式碼如果直接使用「整數字面值」(IntegralLiterals),包含0、正整數和負整數都可以使用十進位、八進位和十六進位來表示,其預設型別是Integer,如果太長是Long型別。整數字面值以“&O”開頭且每個位數的值為0~7整數時,表示是八進位;“&H”開頭的數值,位數值為0~9或A~F是十六進位。3-3-2整數資料型別-

十、八和十六進位在程式碼如果直接333-3-2整數資料型別-範例如果想指定整數字面值的資料型別,可以在整數字面值後加上型別字元(TypeCharacters),19S是Short、19I是Integer,19L是Long,19US是UShort、19UI是UInteger和19UL是ULong。一些整數字面值的範例,如下表所示:3-3-2整數資料型別-範例如果想指定整數字面值的資料型別343-3-3浮點數資料型別-說明「浮點數資料型別」(FloatingPointTypes)是指數值是整數再加上小數,例如:3.1415、102.567等,依長度不同(即佔用的記憶體位元數)分為:Single、Double和Decimal三種浮點數的資料型別。3-3-3浮點數資料型別-說明「浮點數資料型別」(Floa353-3-3浮點數資料型別-浮點數值程式設計者可依浮點數值範圍來決定宣告的變數型別。如果在程式碼直接使用「浮點數字面值」(Floation-PointLiterals),預設是Double型別,可以使用“E”符號代表10為底的指數。如果浮點數字面值需要指定資料型別,型別字元"F"是Single資料型別,Double資料型別請使用"R",Decimal使用"D"。一些浮點數字面值的範例,如下表所示:3-3-3浮點數資料型別-浮點數值程式設計者可依浮點數值範363-3-4布林資料型別「布林資料型別」(BooleanType)只有兩個值True和False,對應「真」或「偽」狀態。3-3-4布林資料型別「布林資料型別」(BooleanT373-3-5字串資料型別「字串資料型別」(StringType)的資料是字串,字串是0或多個依序的Char資料型別的字元,以雙引號括起的文字內容,即「字串字面值」(StringLiterals),如下所示:Dimstr1AsString=“VisualBasic程式設計”Dimstr2AsString=“HelloWorld!”Dimstr3AsString=_”\\localhost\download\joe”3-3-5字串資料型別「字串資料型別」(StringTy383-3-6字元資料型別「字元資料型別」(CharType)是單一Unicode字元,如果是數值,可以儲存「無符號」(Unsigned)16位元整數。在VisualBasic程式使用「字元字面值」(CharacterLiterals)是以雙引號括起的單一字元,如下所示:DimaAsChar="A"C3-3-6字元資料型別「字元資料型別」(CharType393-3-7日期/時間資料型別「日期/時間資料型別」(DateType)可以儲存日期/時間資料,「日期/時間字面值」(DateLiterals)的日期時間資料需要使用"#"括起,如下所示:DimtdayAsDate=#12/30/201012:00:00AM#上述日期/時間值的年份有4位數,時間部分可以是12或24小時制,如果沒有AM或PM是24小時制,忽略分或秒的預設值為0。3-3-7日期/時間資料型別「日期/時間資料型別」(Dat403-3資料型別-VisualBasic專案VisualBasic專案:Ch3-3在主控台應用程式宣告各種資料型別的變數後,測試各種資料型別的字面值,如下圖所示:3-3資料型別-VisualBasic專案Visual413-4運算式與運算子3-4-1運算式的基礎3-4-2運算子的優先順序3-4-3算術運算子ViLLE–1.3數學公式建立運算式3-4-4字串連接與Like運算子3-4-5指定運算子3-4運算式與運算子3-4-1運算式的基礎423-4-1運算式的基礎運算式是由運算元和運算子組成,在指定敘述的運算式一定在等號右邊,如下所示:C1=A+B–1C2=(A>=B)C3=A&BC4=(A<BAndA>1)上述運算式的變數A、B和數值1是運算元,+、-、<、>=和>為運算子,變數C1~C4是左值,也就是運算式將計算結果存入變數C1~C4。3-4-1運算式的基礎運算式是由運算元和運算子組成,在指定433-4-2運算子的優先順序-說明VisualBasic提供多種運算子,如果在同一個運算式使用多種運算子,為了讓運算式能夠得到相同結果,運算式是使用運算子預設的優先順序進行運算。VisualBasic運算式預設依其出現順序,由左到右依序的執行運算。3-4-2運算子的優先順序-說明VisualBasic提443-4-2運算子的優先順序-規則“()”括號內比括號外先執行,括號是為了推翻現有優先順序,在括號內是依照正常優先順序。當運算式擁有多種運算子時,算術運算子最先,接著關係運算子,最後是邏輯運算子,如下:算術運算子>關係運算子>邏輯運算子關係運算子擁有相同的優先順序。算術運算子加和減法優先順序相同,乘和除法擁有相同的優先順序,不過乘除高於加減,如下:^指數>(-)負號>*/乘除>\整數除法>Mod>+-加減>&邏輯運算子的優先順序,如下所示:Not>And,AndAlso>Or,OrElse>Xor3-4-2運算子的優先順序-規則“()”括號內比括號外先453-4-3算術運算子-說明算術運算子+-也可以是「單運算元」(Unary)運算子的正負號。各種算術運算子的說明,如下表所示:3-4-3算術運算子-說明算術運算子+-也可以是「單運算元463-4-3算術運算子-數學運算式如果使用變數,可以建立更複雜的數學運算式,如下所示:f=X^2-2*X+3f=(X+Y)^2+5已知數學公式,例如:華氏(Fahrenheit)和攝氏(Celsius)溫度的轉換,攝氏轉華氏的公式如下所示:F=(9.0*C)/5.0+32.0華氏轉攝氏的公式,如下所示:C=(5.0/9.0)*(F-32)3-4-3算術運算子-數學運算式如果使用變數,可以建立更複473-4-3算術運算子-VisualBasic專案VisualBasic專案:Ch3-4-3在主控台應用程式計算上述數學運算式的值,和轉換攝氏或華氏溫度,如下圖所示:3-4-3算術運算子-VisualBasic專案Visu48ViLLE–1.3

數學公式建立運算式請啟動ViLLE,在【一.變數與運算子】目錄下,選【3.數學公式建立運算式】,按【Run】鈕模擬執行此範例程式,如下圖所示:ViLLE–1.3數學公式建立運算式請啟動ViLLE,493-4-4字串連接與Like運算子-說明對於String資料型別,VisualBasic語言提供兩種運算子,可以連接字串內容和進行字串的範本比較,如下所示:運算子說明運算式範例&字串連接"abc"&"de"="abcde"Like字串比較使用範本的萬用字元來進行字串比較,如果符合傳回布林值True;否則為False3-4-4字串連接與Like運算子-說明對於String資503-4-4字串連接與Like運算子-範本字串Like運算子的第1個運算元是欲比較字串,第2個運算元是範本字串,這是使用特殊符號字元組成的字串,如下表所示:3-4-4字串連接與Like運算子-範本字串Like運算子513-4-4字串連接與Like運算子-範本字串範例Like運算子的範本字串範例,如下所表示:3-4-4字串連接與Like運算子-範本字串範例Like運523-4-4字串連接與Like運算子-VisualBasic專案VisualBasic專案:Ch3-4-4在主控台應用程式測試字串連接和比較運算子Like,如下圖所示:3-4-4字串連接與Like運算子-VisualBasi533-4-5指定運算子指定運算子除了使用前述指定敘述"="外,指定運算子還可以配合其他運算子來簡化運算式,建立更簡潔的算術運算式,如下表所示:3-4-5指定運算子指定運算子除了使用前述指定敘述"="外543-5資料型別的轉換3-5-1隱含型別轉換3-5-2明顯型別轉換3-5資料型別的轉換3-5-1隱含型別轉換553-5資料型別的轉換「資料型別轉換」(TypeConversions)是因為同一個運算式可能有多個不同資料型別的變數或字面值。例如:在運算式擁有整數和浮點數的變數或字面值時,就需要執行型別轉換。資料型別轉換是指轉換變數儲存的資料,而不是變數本身的資料型別,因為不同型別佔用的位元組數不同,在進行資料型別轉換時。例如:Double轉換成Single,變數資料就有可能損失資料或精確度。3-5資料型別的轉換「資料型別轉換」(TypeConve563-5-1隱含型別轉換-說明「隱含型別轉換」(ImplicitConversions)並不需要特別語法,在運算式或指定敘述兩端,如果有不同型別的變數,就會將儲存資料自動轉換成相同的資料型別。一些運算式範例,如下表所示:3-5-1隱含型別轉換-說明「隱含型別轉換」(Implic573-5-1隱含型別轉換-VisualBasic專案VisualBasic專案:Ch3-5-1在主控台應用程式建立運算式來測試隱含型別轉換,如下圖所示:3-5-1隱含型別轉換-VisualBasic專案Vis583-5-2明顯型別轉換-說明隱含型別轉換對於程式設計者來說,並不需要任何額外處理。不過,因為是自動轉換,有時可能造成未知的型別轉換錯誤。例如:上一節範例程式,如果準備將字串轉換成整數後再相加,運算式num=str1+str2結果的值應該是375,而不是250125。「明顯型別轉換」(ExplicitConversions)是在進行運算前,自行使用轉換函數轉換成相同資料型別。3-5-2明顯型別轉換-說明隱含型別轉換對於程式設計者來說593-5-2明顯型別轉換-轉換函數在本節範例程式只使用幾個轉換函數,更多轉換函數說明請參閱第7-4-3節,如下表所示:3-5-2明顯型別轉換-轉換函數在本節範例程式只使用幾個轉603-5-2明顯型別轉換-VisualBasic專案VisualBasic專案:Ch3-5-2在主控台應用程式建立運算式來測試明顯型別轉換,對於不同型別變數,我們需要自行使用型別轉換函數來轉換型別,如下圖所示:3-5-2明顯型別轉換-VisualBasic專案Vis61EndEnd62第3章變數、資料型別與運算子第3章變數、資料型別與運算子63第3章變數、資料型別與運算子3-1變數與資料型別的基礎3-2變數的命名與宣告3-3資料型別3-4運算式與運算子3-5資料型別的轉換第3章變數、資料型別與運算子3-1變數與資料型別的基礎643-1變數與資料型別的基礎-圖例在程式語言的「變數」(Variables)可以視為是一個擁有名稱的盒子,能夠暫時儲存程式執行時所需的資料,如下圖所示:3-1變數與資料型別的基礎-圖例在程式語言的「變數」(Va653-1變數與資料型別的基礎-說明兩個盒子名稱分別是變數名稱name和height,在盒子中儲存的資料"VB程式"和100稱為「字面值」(Literals)或稱為「常數值」(Constants),也就是數值、字元或字串等常數值,如下所示:10015.3"VisualBasic程式"現在回到盒子本身,盒子形狀和尺寸決定儲存資料,對比程式語言來說,形狀和尺寸就是變數的資料型別(DataTypes)。3-1變數與資料型別的基礎-說明兩個盒子名稱分別是變數名稱663-2變數的命名與宣告3-2-1VisualBasic的命名規則3-2-2變數的宣告3-2-3指定敘述ViLLE–1.1指定敘述與輸出變數值3-2-4Option指令敘述3-2-5符號常數的使用3-2-6列舉資料型別Enumeration3-2變數的命名與宣告3-2-1VisualBasic673-2變數的命名與宣告對於高階程式語言來說,程式是由資料(Data)和指令(Instructions)組成,如下所示:資料部分:變數(Variables)和資料型別(DataTypes)。指令部分:運算子、第5和6章的流程控制(ControlStructures)和第7章的副程序(Subroutines)。在程式碼除了程式語言的「關鍵字」(Keywords,或稱保留字)外,大部分都屬於程式設計者自訂的元素名稱,稱為「識別字」(Identifier),例如:變數、程序、函數和物件名稱等。3-2變數的命名與宣告對於高階程式語言來說,程式是由資料(683-2-1VisualBasic的命名規則-

命名規則識別字不可使用VisualBasic關鍵字或系統的物件名稱。名稱必須是英文字母或底線"_"開頭,如果以底線開頭,至少需要一個其他英文字母或數字。名稱長度不可超過16383個字元,不區分英文字母大小寫,abc和ABC代表同一個名稱。名稱中間不能有句點"."、運算子(例如:+-*/^等)或空白,只能是英文字母、數字和底線。在宣告的有效範圍內必須唯一,有效範圍請參閱第7章的程序和函數。3-2-1VisualBasic的命名規則-

命名規則識693-2-1VisualBasic的命名規則-

命名範例一些合法的VisualBasic元素名稱的範例,如下所示:def,no_123,size1,_123,_abcCar,count,height,s1,s2一些不合法名稱,因為只有底線和以數字開頭,如下所示:_,123abc3-2-1VisualBasic的命名規則-

命名範例一703-2-1VisualBasic的命名規則-匈牙利命名法匈牙利命名法是將變數的前3個字元視為資料型別,依不同資料型別加上字首字串,如下表所示:3-2-1VisualBasic的命名規則-匈牙利命名法713-2-1VisualBasic的命名規則-CamelCasing命名法CamelCasing命名法是第1個英文字小寫之後為大寫,變數、程序/函數的命名可以使用不同英文字母大小寫的組合,如下表所示:3-2-1VisualBasic的命名規則-Camel723-2-2變數的宣告-說明程式語言的變數是儲存程式執行中的一些暫存資料,程式設計者只需使用變數名稱就可以存取記憶體位址的資料。簡單的說,它就是使用有意義的名稱來代表數字的位址。3-2-2變數的宣告-說明程式語言的變數是儲存程式執行中的733-2-2變數的宣告-屬性程式的變數擁有一些屬性,可以用來描述變數的組成元素,如下表所示:屬性名稱說明名稱(Name)變數名稱是一個標籤,可以在程式中識別出它是一個變數位址(Address)在記憶體中儲存此變數的記憶體位址尺寸(Size)變數佔用的記憶體尺寸,以位元組為單位型別(Type)變數儲存資料的資料型別值(Value)變數值,也就是在記憶體位址中儲存的資料壽命(Lifetime)在執行程式時,變數存在的期間,有些變數是在整個執行過程中都存在;有些變數是在執行期間自動或由程式碼建立範圍(Scope)在程式碼的哪些程式敘述可以存取此變數3-2-2變數的宣告-屬性程式的變數擁有一些屬性,可以用來743-2-2變數的宣告-變數的宣告VisualBasic變數是使用Dim關鍵字進行宣告,如下所示:Dimvolumn宣告變數volumn預設的資料型別是Object,可以儲存各種資料型別的值。如果宣告的變數有指定資料型別,我們需要使用As關鍵字來宣告變數的資料型別,如下所示:Dimheight,widthAsInteger如果同一列的2個變數屬於不同資料型別,也可以分別宣告其資料型別,如下所示:DimnameAsString,depthAsInteger3-2-2變數的宣告-變數的宣告VisualBasic變753-2-2變數的宣告-變數的初值如果需要,我們在宣告變數時可以同時指定初值,如下所示:DimnameAsString,depth=100DimtitleAsString="VisualBasic程式設計"上述程式碼宣告字串變數name和title,並且指定字串變數title的初值。變數depth沒有指定型別;但指定初值100,2008之後版本會自動以初值指定資料型別為整數。3-2-2變數的宣告-變數的初值如果需要,我們在宣告變數時763-2-2變數的宣告-VisualBasic專案VisualBasic專案:Ch3-2-2在主控台應用程式宣告6個變數,分別指定變數初值後顯示變數值,如下圖所示:3-2-2變數的宣告-VisualBasic專案Visu773-2-3指定敘述-說明在VisualBasic程式宣告變數後,就可以使用指定敘述來指定變數值,也就是"="等號運算子,如下所示:Dimdepth,height,widthAsIntegerDimnameAsStringheight=35width=57name="陳會安"上述程式碼在宣告整數和字串型別的變數後,使用指定敘述來指定變數值。3-2-3指定敘述-說明在VisualBasic程式宣告783-2-3指定敘述-圖例在指定敘述“=”等號左邊的變數稱為「左值」(Lvalue),指的是變數的位址(Address)屬性,如果變數在等號的右邊稱為「右值」(Rvalue),這是變數的值(Value)屬性。目前變數的記憶體圖例,如下圖所示:3-2-3指定敘述-圖例在指定敘述“=”等號左邊的變數稱為793-2-3指定敘述-VisualBasic專案VisualBasic專案:Ch3-2-3在主控台應用程式宣告數個變數後,使用指定敘述來指定變數值,如下圖所示:3-2-3指定敘述-VisualBasic專案Visua80ViLLE–1.1

指定敘述與輸出變數值請啟動ViLLE,在【一.變數與運算子】目錄下,選【1.指定敘述與輸出變數值】,按【Run】鈕模擬執行此範例程式,如下圖所示:ViLLE–1.1指定敘述與輸出變數值請啟動ViLLE813-2-4Option指令敘述-1OptionExplicit:設定程式變數是否一定需要事先宣告,Off表示不用宣告;強迫宣告需設為On,此為VBE的預設值,如下所示:OptionExplictOnOptionStrict:指定程式是否使用嚴格的型別檢查,例如:當執行型別轉換進行嚴格檢查,預設值Off表示不嚴格檢查。如果需要嚴格檢查,請設為On,如下所示:OptionStrictOff3-2-4Option指令敘述-1OptionExpli823-2-4Option指令敘述-2OptionCompare:指定字串比較方式是使用二進位或文字比較,可以是Binary(預設值)或Text,如下所示:OptionCompareBinaryOptionInfer:如果指定OptionExplictOff設定程式變數不需事先宣告時,我們可以再指定OptionInfer為On(預設值),讓VisualBasic編譯器依變數第1次指定的值來自動決定最佳的資料型別;值如果為Off,此時的資料型別為Object,如下所示:OptionExplictOffOptionInferOn3-2-4Option指令敘述-2OptionCompa833-2-4Option指令敘述-

VisualBasic專案VisualBasic專案:Ch3-2-4在主控台應用程式將VBE專案的OptionExplicit設為Off,和OptionInfer為On後,就可以不宣告變數,隨時在程式碼中使用變數,讓VisualBasic編譯器自動決定最佳的資料型別,如下圖所示:3-2-4Option指令敘述-

VisualBasic843-2-5符號常數的使用-說明「符號常數」(SymbolicConstants或NamedConstants)是在程式碼使用名稱來取代固定數字或字串,與其將符號常數視為變數,不如說它是名稱轉換,將一些數值的值使用有意義名稱來取代。VisualBasic語言本身就擁有一些內建符號常數,例如:vbTab、vbNewLine等,不過使用者可以自行使用Const關鍵字建立符號常數,請注意!符號常數在宣告時需要指定其值,如下所示:ConstMAX_WIDTH=150ConstPI=3.14159263-2-5符號常數的使用-說明「符號常數」(Symboli853-2-5符號常數的使用-

VisualBasic專案VisualBasic專案:Ch3-2-5在主控台應用程式宣告符號常數,並且在運算式使用符號常數來計算圓面積,如下圖所示:3-2-5符號常數的使用-

VisualBasic專案V863-2-6列舉資料型別Enumeration-說明如同符號常數使用名稱取代固定數值,「列舉常數」(Enumerations)是使用一組名稱來取代一組整數資料型別的數值。它是使用Enum/EndEnum程式敘述來進行宣告,如下所示:EnumColorAsIntegerWhite=1RedBlue=5GreenBlack=GreenEndEnum3-2-6列舉資料型別Enumeration-說明如同符號873-2-6列舉資料型別Enumeration-VisualBasic專案VisualBasic專案:Ch3-2-6在主控台應用程式宣告列舉常數Color,然後顯示各列舉常數成員的對應值,如下圖所示:3-2-6列舉資料型別Enumeration-Visual883-3資料型別3-3-1VisualBasic的基本資料型別3-3-2整數資料型別3-3-3浮點數資料型別3-3-4布林資料型別3-3-5字串資料型別3-3-6字元資料型別3-3-7日期/時間資料型別3-3資料型別3-3-1VisualBasic的基本資893-3資料型別VisualBasic語言的資料型別是指變數的記憶體位址儲存的資料種類,VisualBasic資料型別可以分為「數值型別」(ValueTypes)和「參考型別」(ReferenceTypes)兩種資料型別,如下所示:數值型別:變數值儲存的是字面值,它是記憶體儲存的內容。VisualBasic語言提供Byte、Short、Integer、Long、Single、Double、Char和Boolean等基本資料型別。參考型別:變數值並不是記憶體內容,而是記憶體位址。例如:Module、Class、String和Array陣列等,在第8章說明陣列Array;附錄A說明Class。3-3資料型別VisualBasic語言的資料型別是指變903-3-1VisualBasic的基本資料型別-

說明在宣告VisualBasic變數時不一定需要指定資料型別,如果沒有指定資料型別,預設資料型別是Object。Object是所有VisualBasic資料型別的基礎資料型別,換句話說,這個變數可以儲存各種不同資料型別的資料。3-3-1VisualBasic的基本資料型別-

說明在913-3-1VisualBasic的基本資料型別-種類1資料型別說明位元組範圍Boolean布林值2True或FalseByte正整數10~255SByte整數1-128~127Char字元20~65535Short短整數2-32,768~32,767UShort正短整數20~65,535Integer整數4-2,147,483,648~2,147,483,647UInteger正整數40~4,294,967,295Long長整數8-9,223,372,036,854,775,808~9,223,372,036,854,775,807ULong正長整數80~18,446,744,073,709,551,6153-3-1VisualBasic的基本資料型別-種類1資923-3-1VisualBasic的基本資料型別-種類2資料型別說明位元組範圍Single單精度的浮點數4負值範圍為-3.4028235E+38~-1.401298E-45,正值的範圍為1.401298E-45~3.4028235E+38Double雙精度的浮點數8負值範圍為-1.79769313486231570E+308~-4.94065645841246544E-324,正值範圍為4.94065645841246544E-324~1.79769313486231570E+308Decimal數值160~+/-79,228,162,514,264,337,593,543,950,335沒有小數,0~+/-7.9228162514264337593543950335帶28位小數,最小的非零值為+/-0.0000000000000000000000000001(+/-1E-28)Date日期80001年1月1日~9999年12月31日String字串依平台0~2百萬Unicode字元Object物件4物件型別變數可以儲存各種資料型別的值3-3-1VisualBasic的基本資料型別-種類2資933-3-2整數資料型別-說明「整數資料型別」(IntegralTypes)是指變數儲存的資料是整數沒有小數點。依整數資料長度的不同(即佔用的記憶體位元數),可以分為Byte、SByte、Char、Short、UShort、Integer、UInteger、Long和Ulong等整數資料型別。Byte、Ushort、Uinteger和Ulong型別是正整數,其他可以是正整數或負整數,程式設計者能夠依照整數範圍決定宣告的變數型別。3-3-2整數資料型別-說明「整數資料型別」(Integr943-3-2整數資料型別-

十、八和十六進位在程式碼如果直接使用「整數字面值」(IntegralLiterals),包含0、正整數和負整數都可以使用十進位、八進位和十六進位來表示,其預設型別是Integer,如果太長是Long型別。整數字面值以“&O”開頭且每個位數的值為0~7整數時,表示是八進位;“&H”開頭的數值,位數值為0~9或A~F是十六進位。3-3-2整數資料型別-

十、八和十六進位在程式碼如果直接953-3-2整數資料型別-範例如果想指定整數字面值的資料型別,可以在整數字面值後加上型別字元(TypeCharacters),19S是Short、19I是Integer,19L是Long,19US是UShort、19UI是UInteger和19UL是ULong。一些整數字面值的範例,如下表所示:3-3-2整數資料型別-範例如果想指定整數字面值的資料型別963-3-3浮點數資料型別-說明「浮點數資料型別」(FloatingPointTypes)是指數值是整數再加上小數,例如:3.1415、102.567等,依長度不同(即佔用的記憶體位元數)分為:Single、Double和Decimal三種浮點數的資料型別。3-3-3浮點數資料型別-說明「浮點數資料型別」(Floa973-3-3浮點數資料型別-浮點數值程式設計者可依浮點數值範圍來決定宣告的變數型別。如果在程式碼直接使用「浮點數字面值」(Floation-PointLiterals),預設是Double型別,可以使用“E”符號代表10為底的指數。如果浮點數字面值需要指定資料型別,型別字元"F"是Single資料型別,Double資料型別請使用"R",Decimal使用"D"。一些浮點數字面值的範例,如下表所示:3-3-3浮點數資料型別-浮點數值程式設計者可依浮點數值範983-3-4布林資料型別「布林資料型別」(BooleanType)只有兩個值True和False,對應「真」或「偽」狀態。3-3-4布林資料型別「布林資料型別」(BooleanT993-3-5字串資料型別「字串資料型別」(StringType)的資料是字串,字串是0或多個依序的Char資料型別的字元,以雙引號括起的文字內容,即「字串字面值」(StringLiterals),如下所示:Dimstr1AsString=“VisualBasic程式設計”Dimstr2AsString=“HelloWorld!”Dimstr3AsString=_”\\localhost\download\joe”3-3-5字串資料型別「字串資料型別」(StringTy1003-3-6字元資料型別「字元資料型別」(CharType)是單一Unicode字元,如果是數值,可以儲存「無符號」(Unsigned)16位元整數。在VisualBasic程式使用「字元字面值」(CharacterLiterals)是以雙引號括起的單一字元,如下所示:DimaAsChar="A"C3-3-6字元資料型別「字元資料型別」(CharType1013-3-7日期/時間資料型別「日期/時間資料型別」(DateType)可以儲存日期/時間資料,「日期/時間字面值」(DateLiterals)的日期時間資料需要使用"#"括起,如下所示:DimtdayAsDate=#12/30/201012:00:00AM#上述日期/時間值的年份有4位數,時間部分可以是12或24小時制,如果沒有AM或PM是24小時制,忽略分或秒的預設值為0。3-3-7日期/時間資料型別「日期/時間資料型別」(Dat1023-3資料型別-VisualBasic專案VisualBasic專案:Ch3-3在主控台應用程式宣告各種資料型別的變數後,測試各種資料型別的字面值,如下圖所示:3-3資料型別-VisualBasic專案Visual1033-4運算式與運算子3-4-1運算式的基礎3-4-2運算子的優先順序3-4-3算術運算子ViLLE–1.3數學公式建立運算式3-4-4字串連接與Like運算子3-4-5指定運算子3-4運算式與運算子3-4-1運算式的基礎1043-4-1運算式的基礎運算式是由運算元和運算子組成,在指定敘述的運算式一定在等號右邊,如下所示:C1=A+B–1C2=(A>=B)C3=A&BC4=(A<BAndA>1)上述運算式的變數A、B和數值1是運算元,+、-、<、>=和>為運算子,變數C1~C4是左值,也就是運算式將計算結果存入變數C1~C4。3-4-1運算式的基礎運算式是由運算元和運算子組成,在指定1053-4-2運算子的優先順序-說明VisualBasic提供多種運算子,如果在同一個運算式使用多種運算子,為了讓運算式能夠得到相同結果,運算式是使用運算子預設的優先順序進行運算。VisualBasic運算式預設依其出現順序,由左到右依序的執行運算。3-4-2運算子的優先順序-說明VisualBasic提1063-4-2運算子的優先順序-規則“()”括號內比括號外先執行,括號是為了推翻現有優先順序,在括號內是依照正常優先順序。當運算式擁有多種運算子時,算術運算子最先,接著關係運算子,最後是邏輯運算子,如下:算術運算子>關係運算子>邏輯運算子關係運算子擁有相同的優先順序。算術運算子加和減法優先順序相同,乘和除法擁有相同的優先順序,不過乘除高於加減,如下:^指數>(-)負號>*/乘除>\整數除法>Mod>+-加減>&邏輯運

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论