3.1數(shù)據(jù)類型
確定數(shù)據(jù)類型的作用有兩個:一,、在生成數(shù)據(jù)時,它指出應為數(shù)據(jù)分配多大的存儲空間,;二,、它規(guī)定了數(shù)據(jù)所能進行的操作
1.數(shù)值數(shù)據(jù)類型 numeric
1) Integer(2個字節(jié))和Long(4個字節(jié)) 運算速度快
定義變量類型時應考慮取值范圍,否則程序運行時會產(chǎn)生“溢出”中斷,;
VB中用+n[%]來表示整數(shù),,其中%為整數(shù)的類型符,可以省略,,n為0~9數(shù)字,;
長整數(shù)用4字節(jié)二進制存儲,VB中用+n&來表示長整數(shù),,其中&為長整數(shù)的類型符
2) Single和DoubleClick
浮點數(shù)也稱實數(shù),,由符號、指數(shù)和尾數(shù)組成,,分單精度和雙精度浮點數(shù),,其指數(shù)部分分別用E(e)和D(d)表示。浮點數(shù)表示數(shù)的范圍很大,,但有誤差,,且運算速度慢。VB中規(guī)定單精度浮點數(shù)精度為7位,,雙精度浮點數(shù)精度為16位,。
單精度浮點數(shù)表示形式:+n.n, +n!, +nE+m, +n.nE+m
要表示雙精度浮點數(shù),對小數(shù)形式只要在數(shù)字后加“#”或用“#”代替“!”,;對指數(shù)形式用“D”代替“E”或指數(shù)形式后加“#”;
3) Currency
貨幣型用8位字節(jié)存儲,,最多保留小數(shù)點左邊15位,,小數(shù)點右邊4位,其余的數(shù)字被舍去,用于貨幣計算,。表示形式為在數(shù)字后加上“@”
4) Byte
字節(jié)型用1個字節(jié)的無符號二進制數(shù)存儲,。
2.日期數(shù)據(jù)類型
日期型表示日期和時間,8字節(jié)的浮點數(shù)來存儲,,表示的范圍從公元100年1月1日~9999年12月31日,,而時間范圍從0:00:00~23:59:59。
表示方式:
1.日期文字必須用兩個“#”符號括起來,,如#january 15,202#,#1985-10-1 9:45:00 PM#
2.以數(shù)字序列表示
當以數(shù)字序列表示時,,小數(shù)點左邊的數(shù)字代表日期,而小數(shù)點右邊的數(shù)字代表時間,;0為午夜,,0.5為中午12點;負數(shù)代表的是1899年12月31日之前的日期和時間,。
3.邏輯數(shù)據(jù)類型
邏輯判斷True或False,,用2字節(jié)二進制存儲。當把其他數(shù)據(jù)類型轉(zhuǎn)換為邏輯型數(shù)據(jù)時,,0會轉(zhuǎn)換為False,,其他非0值轉(zhuǎn)換為True。反之,,當把邏輯型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型時,,False轉(zhuǎn)換為0,True轉(zhuǎn)換為-1,。
4.字符數(shù)據(jù)類型
字符string型數(shù)據(jù)是指一切可打印的字符和字符串,,它是用雙引號括起來的一串字符。VB中規(guī)定一個西文字符和一個漢字均占兩個字節(jié),。在VB中有兩種類型的字符串:變長字符串和定長字符串,。空字符串用””表示,,而” ”表示有一個空格的字符串,;另外,在字符串中必須用兩個連續(xù)的雙引號來表示字符串中有一個雙引號,,如:字符串abc“計算機”abc,,在VB中表示為”abc””計算機””abc”
5.對象數(shù)據(jù)類型
Object變量4個字節(jié),該地址可引用應用程序中的對象,??梢杂肧et語句指定一個被聲明為object的變量,去引用應用程序所識別的任何實際對象,。
6.變體數(shù)據(jù)類型
Variant為VB的數(shù)據(jù)處理增加了智能性,,是所有未定義的變量的默認數(shù)據(jù)類型,,它對數(shù)據(jù)的處理完全取決于程序上下文的需要。
要檢測變體型變量中保存的數(shù)值究竟是什么類型,,可以用Vartype進行檢測,,根據(jù)它的返回值可確定是何數(shù)據(jù)類型。
3.2 變量與常量
被命名的內(nèi)存單元就是變量或常量
3.2.1 變量或常量的命名規(guī)則
1) 必須以字母或漢字開頭,,后可跟漢字,、字母、數(shù)字或下劃線,,長度小于或等于255個字符
2) 不要使用VB中的關(guān)鍵字
3) VB不區(qū)分變量名大小寫,。為了區(qū)別,變量首字母用大寫字母,,其余用小寫字母表示,。常量全部用大寫字母表示
4) 為了增加程序的可讀性,可在變量名前加一個縮寫的前綴(一般3個小寫字母)來表明該變量的數(shù)據(jù)類型,,如cmdExit,、cmdEnter等,參見表1.3.1
5) 變量名在同一作用域中必須是唯一的
6) 使用縮進來反映代碼的邏輯結(jié)構(gòu)和嵌套關(guān)系
3.2.2 變量聲明
1.用Dim語句顯式聲明變量
Dim 變量名 [as 類型]
默認是變體類型,,可在變量名后加類型符來代替“as類型”,,此時變量名與類型符之間不能有空格。類型符見表1.3.1,。一條Dim語句可以同時定義多個變量,,但每個變量必須有自己的類型聲明,類型聲明不能共用,。
對于字符串變量類型,,根據(jù)其存放的字符串長度是否固定,其定義方法兩種:
Dim 字符串變量名 AS String 不定長
Dim 字符串變量名AS String*字符數(shù) 定長,存放的最多字數(shù)由字符數(shù)決定(不足補空,,超出截取),。
2.隱式聲明
VB中允許對使用的變量未進行聲明而直接使用,所有隱式聲明的變量都是Variant型
使用Option Explicit強制聲明所有變量,?;蛘吖ぞ?--選項—編輯器選項卡下—勾選要求變量聲明。
3.2.3 常量
1.直接常量
十六進制數(shù)由數(shù)字0~9,,A~F或a~f組成,,并以&H引導,其后面的數(shù)據(jù)位數(shù)≤4位,,其范圍為&H0~&HFFFF.
八進制數(shù)由數(shù)字0~7組成,,并以&O(&符號后是字母O,并可以省略)引導,,其后面的數(shù)據(jù)位數(shù)≤6位,,其范圍為&O0~&O177777
2.用戶聲明的符號常量
用戶定義的符號常量:Const 符號常量名 [As 類型]=表達式
常量一旦聲明,,其后只能引用,不能改變,。
3.系統(tǒng)提供的常量(好處是。,。,。)
為避免不同對象中同名常量的混淆,可用兩個小寫字母前綴來限定在那個對象庫中:
1) Vb 表示VB和VBA中的常量
2) xl 表示EXCEL中的常量
3) db 表示Data Access Object庫中的常量
命名的規(guī)則也體現(xiàn)了學好英語的作用o(∩_∩)o…哈哈
3.3 運算符和表達式
3.3.1 運算符
VB中運算符可分為算術(shù)運算符,、字符串運算符,、關(guān)系運算符和邏輯運算符4類。
1.算術(shù)運算符
算術(shù)運算符(8個)減號與取負運算符形式相同
算術(shù)運算符兩邊的操作數(shù)應是數(shù)值型,,若是數(shù)字字符或邏輯型,,則自動轉(zhuǎn)換成數(shù)值型數(shù)據(jù)后再參與運算。
2.字符串運算符
字符串運算符“&”“+”,,都是將兩個字符串連接起來,。在字符串變量后用運算符“&”時應注意,變量與運算符“&”間應加一個空格,,因為符號&還是長整型的類型定義符(VB會先把它當作類型定義符處理),。
運算符+和&區(qū)別:
+連接符兩側(cè)的操作數(shù)均應為字符型。若均為數(shù)值型則進行算術(shù)加運算,;若一個為數(shù)字字符型,,另一個為數(shù)值型,則自動將數(shù)字字符轉(zhuǎn)換為數(shù)值,,然后進行算術(shù)加運算,;若一個為非數(shù)字字符型,一個為數(shù)值型則出錯,;兩個均為數(shù)字字符型,,則進行連接;一個數(shù)字字符型,,一個為邏輯型,,則將True轉(zhuǎn)換為-1,False轉(zhuǎn)換為0進行加運算,;
3.關(guān)系運算符
用來對兩個表達式的值進行比較,比較的結(jié)果為邏輯值,,即若關(guān)系成立則返回True,否則返回False,;在VB中,,分別用-1和0表示True和False。
在比較時注意以下規(guī)則:
1) 如果兩個操作數(shù)是數(shù)值型,,則按其大小比較
2) 若進行字符串比較,,則按字符的ASCII碼值從左到右一一比較,即首先比較兩個字符串的第一個字符,,其ASCII碼值大的字符串大,,如果第一個字符相同,則比較第二個字符,,以此類推,,直到出現(xiàn)不同的字符為止,。
3) 漢字字符大于西文字符
4) 所有關(guān)系運算符的優(yōu)先級別均相同
5) “Like”運算符與通配符“,?”,、“*”、“#”,、[字符列表],、[!字符列表]結(jié)合使用,,在數(shù)據(jù)庫的SQL語句中經(jīng)常使用,,用于模糊查詢。,?表任何單一字符,、*表示零個或多個字符、#表示任何一個數(shù)字(0~9),、[字符列表]表示字符列表中的任何單一字符,、[!字符列表]表示不在字符列表中的任何單一字符,;
6) Is用于兩個對象變量引用比較
4.邏輯運算符
將操作數(shù)進行邏輯運算,,結(jié)果是邏輯值True和False。除NOT為單目運算符外,,其他都為雙目運算符,。
邏輯運算符中NOT最高,但它低于關(guān)系運算,,Imp最低,;VB中常用的邏輯運算符是Not,And,Or。
And與Or的區(qū)別:若有多個條件,,And必須條件全部為真才為真,,Or只要有一個條件為真就真。
參與邏輯運算的量一般都應是邏輯型數(shù)據(jù),,但如果參與邏輯運算的兩操作數(shù)是數(shù)值量,,則以數(shù)值的二進制逐位進行邏輯運算(0當False,1當True),。利用邏輯運算符對數(shù)值進行運算常用于屏蔽某些位。用于在鍵盤事件中判定是否按了Shift,、Ctrl,、Alt等鍵,也可用于分離顏色碼,。
日期時間運算 借用已有的+-算術(shù)運算符和比較運算符,。VB中用8個字節(jié)存放日期時間型數(shù)據(jù),它的整數(shù)部分表示日期,,小數(shù)部分表示時間。如果將日期時間數(shù)據(jù)加上一個數(shù)值型數(shù)據(jù),,則VB會以實數(shù)表示的前者日期和時間加上數(shù)值型數(shù)據(jù),,其結(jié)果的整數(shù)部分表示新的日期,而用小數(shù)部分表示新的時間,,減法的結(jié)果相反,。
若兩個日期時間型數(shù)據(jù)進行減法運算時的結(jié)果為一個數(shù)值,表示兩個日期間隔天數(shù)或時間差,。
當兩個日期時間型數(shù)據(jù)進行比較運算時,,較晚的日期時間大于較早的日期時間。
3.3.2 表達式
1.表達式的組成
用運算符將變量,、常量,、函數(shù)和圓括號連接起來的符合VB語法規(guī)則的式子稱為表達式。
2.表達式的書寫規(guī)則
1) 乘號不能省略,。
2) 只能使用圓括號,,可以多重使用,但必須成對出現(xiàn),。括號改變優(yōu)先順序,,強令表達式的某些部分優(yōu)先運行。括號內(nèi)的運算總是優(yōu)先于括號外的運算,。對于多重括號,,總是由內(nèi)到外。
3) 不能出現(xiàn)非法的字符,;如∏
4) 運算符不能相鄰,;如a+-b
5) 表達式從左到右在同一基準上書寫,無高低,、大小之分,。要注意各種運算符的優(yōu)先級別,為保持運算順序,,在寫VB表達式時需要適當添加括號,,若用到庫函數(shù)必須按庫函數(shù)要求書寫,。
3.不同數(shù)據(jù)類型的轉(zhuǎn)換
如果表達式中操作數(shù)具有不同的數(shù)據(jù)精度,則將較低精度轉(zhuǎn)換為操作數(shù)中精度最高的數(shù)據(jù)精度,,即按Interger,Long,Single,Double,Currency的順序轉(zhuǎn)換,,且Long型數(shù)據(jù)和Single型數(shù)據(jù)進行運算時,結(jié)果總是Double型數(shù)據(jù),,即Interger<Long<Single<Double<Currency,。
4.優(yōu)先級
算術(shù)運算符>字符運算符>關(guān)系運算符>邏輯運算符
3.4 常用內(nèi)部函數(shù)
以下N表示數(shù)值表達式,C表示字符表達式,,D表示日期表達式,。函數(shù)名后有$符號的,表示函數(shù)返回值為字符串,。裝有MSDN的系統(tǒng)可以通過幫助菜單獲取使用方法,。
3.4.1 數(shù)學函數(shù) 表1.3.6 常用的數(shù)學函數(shù)
3.4.2 轉(zhuǎn)換函數(shù) 表1.3.7常用的轉(zhuǎn)換函數(shù)
其它類型轉(zhuǎn)換函數(shù):CInt\CBool\CSng\CStr
3.4.3字符串函數(shù)
1) 字符串編碼
VB中字符串長度是以字為單位,,西文字符和漢字都占用兩個字節(jié)。Unicode是全部用兩個字節(jié)表示一個字符的字符集,,保留ASCII,,僅將其字節(jié)數(shù)變?yōu)閮蓚€,增加的字節(jié)以零填入,。Unicode與ASCII之間相互轉(zhuǎn)換的函數(shù)是Strconv,。
2) 字符串函數(shù) 表1.3.8字符串函數(shù)(需要記憶)
3.4.4日期函數(shù) 表1.3.9
C|N表示可以是數(shù)值表達式,也可以是字符串表達式,,其中N表示相對于1899年12月31日前后的天數(shù)
DateAdd(要增減日期形式,增減量,,要增減的日期變量)
函數(shù)作用:對要增減的日期變量按日期形式做增減,。表1.3.10
DateDiff(要間隔日期形式,日期1,,日期2)
函數(shù)作用:兩個指定的日期按日期形式求相差的日期表1.3.10
3.4.5 Shell函數(shù)
Shell(命令字符串[,窗口類型])
1) 命令字符串:包括路徑的程序名,,必須是可執(zhí)行文件( .exe .com .bat)
2) 窗口類型:表示執(zhí)行應用程序的窗口大小,0—4,,6的整型數(shù)值,。一般為1---正常窗口狀態(tài)
函數(shù)成功調(diào)用的返回值為一個任務標示ID,它是運行程序的唯一標識。App.path表示當前該VB程序的路徑,。
3.5 綜合應用
1.編碼規(guī)則:
1) VB代碼不區(qū)分字母的大小寫
但關(guān)鍵字將會自動轉(zhuǎn)換為大寫字母開頭(可以據(jù)此判斷輸入是否正確),,后續(xù)字母為小寫字母
若關(guān)鍵字由多個英文單詞組成,則每個單詞首字母轉(zhuǎn)換成大寫
用戶自定義的變量,、過程名等,,VB以第一次定義為準,其后的輸入自動向首次定義的轉(zhuǎn)換
2) 語句書寫自由:
1. 一行可以書寫多條語句,,各語句之間用“:”分隔
2. 一行書寫不完的語句,可以在該行后加上續(xù)行符(由空格+下劃線_組成),,然后換行書寫
3. 一行最多為255個字符,,一條語句最多包含1023個字符
3) 注釋(有利于程序的維護和調(diào)試):
1. 注釋以Rem或單引號’開頭,但是只有用單引號引導的注釋可以出現(xiàn)在其他語句之后
2. 可以使用“編輯”工具欄中的“設(shè)置注釋塊”命令將選定的若干行語句或文字設(shè)置為注釋項,,也可以使用“解除注釋塊”命令將選定的若干行解除注釋( 右擊標準工具欄,,選編輯)
在VB中使用的分號、引號,、括號等符號都是英文狀態(tài)下的半角符號,,而不能使用中文狀態(tài)下的全角符號。
習 題3
一,、問答題
1略 2 單精度型 3.Val Mid Lcase Ucase 4,、5主要考察變量命名規(guī)則
二、選擇題
1.D 123% 2.A 3.A 4.C 5.C 6.A 7.B 8.B
三,、填空題
1.Option Explicit 2.變體數(shù)據(jù)類型 3.* 4.F 5.注意弧度 15*3.14159,、180 6.不能省的不要省卻
7.略Sqr函數(shù) 8.(X mod 5=0)or(x mod 9=0) 9.Chr(Int(Rnd*10+67)) C--67 L--77 10.mid(s,5,6)
11.(X>=10)and(X<20) 12.優(yōu)先級問題188 13.876554 14.#2/29/2000# 注意是閏年
|
|