《Visual Basic程序設(shè)計(jì)教程》課件 第3章 VB程序設(shè)計(jì)語言基礎(chǔ)_第1頁
《Visual Basic程序設(shè)計(jì)教程》課件 第3章 VB程序設(shè)計(jì)語言基礎(chǔ)_第2頁
《Visual Basic程序設(shè)計(jì)教程》課件 第3章 VB程序設(shè)計(jì)語言基礎(chǔ)_第3頁
《Visual Basic程序設(shè)計(jì)教程》課件 第3章 VB程序設(shè)計(jì)語言基礎(chǔ)_第4頁
《Visual Basic程序設(shè)計(jì)教程》課件 第3章 VB程序設(shè)計(jì)語言基礎(chǔ)_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Visual

Basic程序設(shè)計(jì)教程CHAPTER第第三三章章VVBB程程序序設(shè)設(shè)計(jì)計(jì)語語言言基基礎(chǔ)礎(chǔ)VB程序的書寫規(guī)則與調(diào)試方法VB中的數(shù)據(jù)類型變量和常量3.13.23.33.43.5運(yùn)算符和表達(dá)式常用內(nèi)部函數(shù)任何程序在運(yùn)行時(shí)都離不開數(shù)據(jù),有些數(shù)據(jù)在程序運(yùn)行中不會(huì)發(fā)生變化,還有些數(shù)據(jù)會(huì)發(fā)生變化。這就需要使用常量與變量。此外,在描述不同種類型的信息時(shí),需要的數(shù)據(jù)也不一樣,因而數(shù)據(jù)又有不同的類型。SectionVB程序的書寫規(guī)則與調(diào)試方法VB程序不區(qū)分英文字母大小寫程序語句書寫要點(diǎn)為程序增加注釋VB程序調(diào)試入門3.1程序的書寫規(guī)則與調(diào)試方法3.1.1

VB程序不區(qū)分英文字母大小寫在VB中,系統(tǒng)對變量、常量、命令等標(biāo)識(shí)符中的英文字母均不區(qū)分大小寫。但是,為了使程序清晰易讀,強(qiáng)烈建議讀者恰當(dāng)使用大小寫。例如:Dim

strC_1

As

String第頁共頁113"定義字符串變量strC_1,“str”為數(shù)據(jù)類型前綴,小寫,符合規(guī)范"定義整型變量INTI_1,“INT”為數(shù)據(jù)類型前綴,通常應(yīng)小寫,故不符合規(guī)范Dim

INTI_1

As

String3.1程序的書寫規(guī)則與調(diào)試方法3.1.2程序語句書寫要點(diǎn)語句是指一系列具體操作的指令,程序就是由若干個(gè)語句構(gòu)成的。VB中語句的書寫規(guī)則如下:一條語句通常寫在一行中。當(dāng)語句有層次關(guān)系時(shí),可在深層次的語句前加上數(shù)量不等的空格或者通過按【Tab】鍵使其向后縮進(jìn)以示區(qū)別,如下例所示:(1)第頁共頁113"填寫和管理進(jìn)紙單

Private

Sub

menu11_Click()If

(Curusertype="系統(tǒng)")Or

(Curusertype="維護(hù)")Or

(Curusertype="印制")ThenfrmJinzhidan.ShowfrmJinzhidan.Left

=

400frmJinzhidan.Top

=

200ElseMsgBox"您無權(quán)執(zhí)行此功能!",vbExclamation,"警告"End

IfEnd

Sub3.1.2程序語句書寫要點(diǎn)3.1程序的書寫規(guī)則與調(diào)試方法若一行中有多條語句,各語句間必須以英語輸入狀態(tài)下的冒號(hào)(:)間隔,如下所示:(2)A=3:b=5對過長的語句,可通過在行尾加續(xù)行符“_”(一個(gè)空格+一個(gè)下劃線)分成多行,如下所示:(3)Printer.CurrentX

=

PaperLeftMargin

+

_Int((Int(Printer.ScaleWidth)

-

Len1)

/

2)第頁共頁113"定位打印坐標(biāo),行尾為續(xù)行符“_”3.1程序的書寫規(guī)則與調(diào)試方法3.1.3為程序增加注釋在程序中加入適當(dāng)?shù)淖⑨尶稍黾映绦虻目勺x性,便于對程序進(jìn)行修改和維護(hù)。注釋以英語輸入狀態(tài)的單引號(hào)“"”引導(dǎo),可放在一行語句的后邊,也可單獨(dú)寫一行或幾行(每行都需要以單引號(hào)引導(dǎo)),但不能放在續(xù)行符的后面。例如:"設(shè)置線寬"打印水平線"恢復(fù)默認(rèn)線寬"打印粗水平線Public

Sub

PrintThickL()Printer.DrawWidth

=

4Printer.Line

(CurX,

CurY)-(CurX

+

LineLength,

CurY)Printer.DrawWidth

=

1End

Sub第頁共頁1133.1程序的書寫規(guī)則與調(diào)試方法3.1.3為程序增加注釋提示注釋通常用于說明某個(gè)子程序的作用,變量或常量的意義,一段程序或某條程序語句的作用等。如果注釋單獨(dú)寫一行,也可使用REM語句對程序進(jìn)行注釋,此時(shí)“REM注釋內(nèi)容”相當(dāng)于“"注釋內(nèi)容”,如下例所示:REM制作計(jì)算器提示在調(diào)試程序時(shí),如果想取消若干行語句的作用而又不想刪除它們時(shí),可在選定這些語句后,單擊“編輯”工具欄中的“設(shè)置注釋塊”按鈕

,這些語句前就加上了單引號(hào)“‘”;如果想取消行首的單引號(hào),可在選定這些語句后,單擊“編輯”工具欄中的“解除注釋塊”按鈕

。第頁共頁1133.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門1.語法錯(cuò)誤自動(dòng)識(shí)別oneVB集成開發(fā)環(huán)境的功能非常強(qiáng)大,首先,我們在借助代碼窗口編寫程序時(shí),如果編寫完一條語句,將光標(biāo)移至其他行,則系統(tǒng)會(huì)立即對輸入的語句進(jìn)行語法檢查。如果語句存在語法錯(cuò)誤,系統(tǒng)會(huì)首先將錯(cuò)誤的語句以紅色顯示,然后彈出一個(gè)信息提示框,指明錯(cuò)誤類型。單擊“確定”按鈕,系統(tǒng)會(huì)自動(dòng)將光標(biāo)定位到錯(cuò)誤語句,讓用戶來糾正錯(cuò)誤,如下圖所示。系統(tǒng)自動(dòng)識(shí)別簡單的語法錯(cuò)誤第頁共頁1133.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門此外,還有些語法錯(cuò)誤,例如,程

序中使用了未定義的過程或函數(shù),變量未定義或重復(fù)聲明等,當(dāng)我們輸入程序時(shí),系統(tǒng)不能自動(dòng)識(shí)別。但是,當(dāng)我們運(yùn)行程序時(shí),系統(tǒng)將會(huì)識(shí)別這些錯(cuò)誤,并給出相應(yīng)的錯(cuò)誤信息提示框。單擊“確定”按鈕,系統(tǒng)會(huì)自動(dòng)定位到錯(cuò)誤語句,并且為錯(cuò)誤語句所在過程頭加上醒目的黃色底紋,如右圖所示。1.語法錯(cuò)誤自動(dòng)識(shí)別one系統(tǒng)自動(dòng)識(shí)別簡單的邏輯錯(cuò)誤第頁共頁1133.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門2.使用立即窗口two在立即窗口中,用戶可以直接編寫一些小程序,以了解函數(shù)的功能,或者確認(rèn)程序片段的功能是否正確。此時(shí)每輸入一行程序,按回車鍵,系統(tǒng)會(huì)自動(dòng)執(zhí)行該行程序。如下圖所示。不過,并非所有語句都可在立即窗口執(zhí)行,例如,用戶不能在立即窗口中使用Dim、Public等語句來聲明變量。此外,調(diào)試程序時(shí),為了了解某些變量或表達(dá)式的變化,用戶還可以在窗體、控件的事件過程或其他程序段中使用“Debug.Print變量或表達(dá)式;變量或表達(dá)式;……”(Debug表示立即窗口)語句,將變量或表達(dá)式結(jié)果顯示在立即窗口中,如下圖所示。利用立即窗口了解函數(shù)功能利用立即窗口查看變量或表達(dá)式結(jié)果第頁共頁1133.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門要打開立即窗口,可選擇“視圖”菜單中的“立即窗口”命令。要清空立即窗口中的內(nèi)容,可以首先將該窗口中設(shè)置為當(dāng)前窗口,然后按【Ctrl+A】組合鍵全選其中的內(nèi)容,最后按【Del】鍵刪除之。2.使用立即窗口two第頁共頁113113第頁共頁3.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門3.使用斷點(diǎn)、監(jiān)視窗口與逐條語句執(zhí)行程序功能three程序設(shè)計(jì)最大的特點(diǎn)是要求邏輯嚴(yán)密,但是,知易行難,尤其是對于一些比較復(fù)雜的程序,要做到邏輯嚴(yán)密更是困難,其中很可能會(huì)出現(xiàn)各種各樣的邏輯錯(cuò)誤。因此,為了幫助程序設(shè)計(jì)人員查找邏輯錯(cuò)誤,VB提供了斷點(diǎn)和監(jiān)視功能。所謂斷點(diǎn),是指當(dāng)程序運(yùn)行到用戶設(shè)定的語句時(shí),系統(tǒng)將臨時(shí)中斷程序運(yùn)行,供用戶查看此時(shí)各變量的數(shù)值,以便進(jìn)行邏輯判斷。要設(shè)置斷點(diǎn),可首先將光標(biāo)定位到代碼窗口中要設(shè)置斷點(diǎn)的語句上,然后在語句左側(cè)的豎形條中單擊,還可選擇“調(diào)試”菜單中的“切換斷點(diǎn)”命令,或者按【F9】鍵,此時(shí)該語句將以紅色底紋標(biāo)識(shí),且在語句左側(cè)出現(xiàn)一個(gè)紅色的圓點(diǎn),見下一頁的圖示。3.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門3.使用斷點(diǎn)、監(jiān)視窗口與逐條語句執(zhí)行程序功能three單擊此處可設(shè)置或取消斷點(diǎn)為程序設(shè)置斷點(diǎn)提示用戶可以根據(jù)需要為程序設(shè)置多個(gè)斷點(diǎn),其設(shè)置方法完全相同。要清除斷點(diǎn),可直接單擊語句左側(cè)的斷點(diǎn)指示圓點(diǎn),也可首先將光標(biāo)定位到設(shè)置斷點(diǎn)的語句上,然后再次按【F9】鍵。如果希望清楚全部斷點(diǎn),可選擇“調(diào)試”菜單中的“清除所有斷點(diǎn)”命令。第頁共頁1133.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門3.使用斷點(diǎn)、監(jiān)視窗口與逐條語句執(zhí)行程序功能three設(shè)置斷點(diǎn)的目的主要是為了檢查此狀態(tài)下各變量的數(shù)值及其變化,而要做到這一點(diǎn),就要借助監(jiān)視窗口了。要打開監(jiān)視窗口,可選擇“視圖”菜單中的“監(jiān)視窗口”命令。要為監(jiān)視窗口添加監(jiān)視,應(yīng)首先將光標(biāo)定位到要監(jiān)視的變量,然后選擇“調(diào)試”菜單中的“添加監(jiān)視”命令,打開“添加監(jiān)視”對話框。如右圖所示。“添加監(jiān)視”對話框第頁共頁1133.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門在“添加監(jiān)視”對話框中,用戶也可在“表達(dá)式”編輯框中輸入要監(jiān)視的變量名。在“監(jiān)視類型”區(qū),用戶還可選擇“當(dāng)監(jiān)視值為真時(shí)中斷”或“當(dāng)監(jiān)視值改變時(shí)中斷”。設(shè)置結(jié)束后,單擊“確定”按鈕,所設(shè)監(jiān)視被自動(dòng)添加到監(jiān)視窗口中,如下圖所示。如果需要的話,用戶可以添加多個(gè)監(jiān)視。3.使用斷點(diǎn)、監(jiān)視窗口與逐條語句執(zhí)行程序功能three添加監(jiān)視后的監(jiān)視窗口第頁共頁1133.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門設(shè)置好斷點(diǎn)和監(jiān)視后,執(zhí)行程序,程序?qū)⑼T谒O(shè)斷點(diǎn)之前,用戶可以在監(jiān)視窗口查看所監(jiān)視的變量值,如右邊上面兩圖所示。此外,為了幫助開發(fā)人員更好地進(jìn)行程序調(diào)試,用戶還可以按【F8】鍵或選擇“調(diào)試”菜單中的“逐語句”命令,單步執(zhí)行程序,即按一次【F8】鍵執(zhí)行一條語句,如右邊下面兩圖所示(執(zhí)行位置指示下移,監(jiān)視窗口中變量x2的值由“空值”變成了20)。3.使用斷點(diǎn)、監(jiān)視窗口與逐條語句執(zhí)行程序功能three監(jiān)視執(zhí)行程序時(shí)變量值的變化第頁共頁1133.1程序的書寫規(guī)則與調(diào)試方法3.1.4

VB程序調(diào)試入門3.使用斷點(diǎn)、監(jiān)視窗口與逐條語句執(zhí)行程序功能three如果此時(shí)用戶希望查看未監(jiān)視的其他變量值,可首先將光標(biāo)定位到該變量,然后選擇“調(diào)試”菜單中的“快速監(jiān)視”命令,打開“快速監(jiān)視”對話框,如下圖所示。如果用戶希望將此監(jiān)視添加到監(jiān)視窗口,可以直接單擊“添加”按鈕。“快速監(jiān)視”對話框第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型數(shù)據(jù)類型決定了計(jì)算機(jī)對數(shù)據(jù)的存儲(chǔ)方式、處理方式和運(yùn)算方式,各種程序設(shè)計(jì)語言中都規(guī)定了基本的數(shù)據(jù)類型。Section3.2.2自字義數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型數(shù)據(jù)類型決定了計(jì)算機(jī)對數(shù)據(jù)的存儲(chǔ)方式、處理方式和運(yùn)算方式,各種程序設(shè)計(jì)語言中都規(guī)定了基本的數(shù)據(jù)類型。第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型第頁共頁113VB中提供的基本數(shù)據(jù)類型如下表所示。單精度浮點(diǎn)型對象型Singleobject!無sngobj4個(gè)字節(jié)4個(gè)字節(jié)雙精度浮點(diǎn)型Double#dbl8個(gè)字節(jié)貨幣型Currency@cur8個(gè)字節(jié)日期型Date無dtm8個(gè)字節(jié)字符串型String$str字符數(shù)*2變體型Variant無vnt可變類型關(guān)鍵字類型符前綴長度取值范圍字節(jié)型Byte無byt1個(gè)字節(jié)0~255邏輯型Boolean無bln2個(gè)字節(jié)True或False整型Integer%int2個(gè)字節(jié)-32768~32767長整型Long&lng4個(gè)字節(jié)-2147483648~2147483647絕對值在1.401298*10-45~3.402823×1038之間任何對象引用絕對值在4.94065645841247×10-324~1.79769313486232×10-308之間-922337203685477.5808~922337203685477.5807100年1月1日~9999年12月31日可存儲(chǔ)字符串的長度取決于變量類型3.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型1.類型符與前綴one在VB中,類型符用于簡化變量或常量聲明,例如,以下兩組語句都是等價(jià)的:Dim

intI1

As

IntegerDim

intI1%Const

PI

As

Double=3.1415926535Const

PI#=3.1415926535"聲明整型變量intI1"聲明整型變量intI1"聲明雙精度常量PI"聲明雙精度常量PI前綴是數(shù)據(jù)類型的縮寫,主要用于命名變量時(shí)指明變量的類型,從而強(qiáng)化程序的可讀性,它本身并無實(shí)質(zhì)意義,例如:Dim

strC1

As

String第頁共頁113"聲明字符串變量strC1,“str”用來指明變量類型3.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型2.數(shù)值型two數(shù)值型數(shù)據(jù)包括字節(jié)型、整型、長整型、浮點(diǎn)型和貨幣型。(1)字節(jié)型、整型和長整型均用于表示整數(shù),差別在于它們表示的數(shù)的取值范圍不同。其中,字節(jié)型數(shù)據(jù)是無符號(hào)數(shù),只能表示正整數(shù);整型和長整型包括正整數(shù)、負(fù)整數(shù)和0。例如:Dim

I1,I2

As

IntegerI1=1:I2=5"定義整型變量"給變量賦初值第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型2.數(shù)值型two若一行中有多條語句,各語句間必須以英語輸入狀態(tài)下的冒號(hào)(:)間隔,如下所示:第頁共頁113(2)"定義單精度變量x1,雙精度變量x2"分別給兩個(gè)變量賦值Dim

x1

As

Single,

x2

As

Doublex1

=

3.1415926535x2

=

3.1415926535Print

"x1=";

x1;

"

x2=";

x2"輸出變量x1=3.141593

x2=3.1415926535程序運(yùn)行結(jié)果x1=1.235667E-6

x2=1.23578911987E-053.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型2.數(shù)值型two由程序運(yùn)行結(jié)果可以看出,單精度數(shù)據(jù)最多有7位有效數(shù)字,超出部分被四舍五入。在程序中定義實(shí)數(shù)常數(shù)時(shí),既可以用大家平時(shí)習(xí)慣的數(shù)字和小數(shù)點(diǎn)表示,也可以用科學(xué)計(jì)數(shù)法表示。但是,由于在VB中不能輸入上標(biāo),所以用nEm的形式表示n×10m,其中,n為實(shí)數(shù),m為整數(shù)。例如,要給變量賦值0.000001235,即可以直接輸入該數(shù)值,也可以輸入1.235E-6(表示1.235×10-6)。第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型不過,無論是在程序中定義實(shí)數(shù)常數(shù),還是輸出程序運(yùn)行結(jié)果,系統(tǒng)都會(huì)根據(jù)情況自動(dòng)決定以哪種方式顯示實(shí)數(shù)。如下例所示:2.數(shù)值型two"定義單精度第頁共頁113Dim

x1

As

Single,x2

As

Double變量x1,雙精度變量x2x1

=

0.000001235666788x2

=

1.23578911987E-05Print

"x1=";

x1;

"

x2=";

x2程序運(yùn)行結(jié)果x1=1.235667E-6x2=1.23578911987E-053.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型2.數(shù)值型two貨幣型數(shù)據(jù)主要用于銀行、會(huì)計(jì)行業(yè)中表示現(xiàn)金數(shù)額的數(shù)據(jù)。它有足夠的整數(shù)位和小數(shù)位(整數(shù)位15位,小數(shù)位4位),可以克服長整型數(shù)據(jù)中沒有小數(shù)、浮點(diǎn)型數(shù)據(jù)計(jì)算誤差太大的缺點(diǎn)。(3)第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型2.數(shù)值型twoVB的數(shù)據(jù)類型非常靈活,各種數(shù)據(jù)類型之間大多都可以相互轉(zhuǎn)換,如下例所示:提示Dim

x

As

DoubleDim

a

As

Long,

b

As

Single,

c

As

BooleanDim

d

As

String,

e

As

Date,

f

As

Currency程序運(yùn)行結(jié)果x

=

1111115.6767545a

=

x:

b

=

x:

d

=

x:

c

=

x:

e

=

x:

f

=

xx為雙精度:1111115.6767545Print

"x為雙精度:";xa為長整型:1111116Print

"a為長整型:";ab為單精度:1111116Print

"b為單精度:";bc為布爾型:TruePrint

"c為布爾型:";cd為字符串:1111115.6767545Print

"d為字符串:";de為日期型:4942-2-15

16:14:32Print

"e為日期型:";ef為貨幣型:1111115.6768Print

"f為貨幣型:";f第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型3.字符串型three字符串型數(shù)據(jù)適合表示文本性質(zhì)的數(shù)據(jù)。它可以是英文,也可以是中文,如一個(gè)單詞,一句話或一個(gè)人的名字等。在VB中,要使用字符串?dāng)?shù)據(jù),應(yīng)在其前后加上英文輸入狀態(tài)的雙引號(hào)。例如,要表示字符串ABCD,正確的形式應(yīng)為"ABCD"。當(dāng)字符串中有英文狀態(tài)的雙引號(hào)時(shí),要用兩個(gè)英文雙引號(hào)表示,例如,ABC"D要寫成"ABC""D";而中文狀態(tài)的雙引號(hào)被會(huì)系統(tǒng)當(dāng)作一個(gè)漢字使用。第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型3.字符串型three此外,VB中的字符串分為變長字符串和定長字符串。其中,變長字符串用“String”聲明,定長字符串用“String

*字符串長度(正整數(shù))”聲明,如下例所示:Dim

str1

As

String

*

4,str2

As

Stringstr1="定長字符串"str2="變長字符串"Print

str1Print

str2第頁共頁113程序運(yùn)行結(jié)果定長字符變長字符串3.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型提示3.字符串型three字符串中所包含的字符個(gè)數(shù)稱為字符串長度;變長字符串的長度由賦給它的值的長度決定;對于定長字符串,若賦給它的字符少于定長值,則不足部分由系統(tǒng)自動(dòng)在右邊補(bǔ)空格填滿;若超過定長值,則多余部分被自動(dòng)截去。第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型4.邏輯型four邏輯型數(shù)據(jù)又稱布爾型數(shù)據(jù),它只有兩個(gè)邏輯值,即“True”和“False”。該類型數(shù)據(jù)用于邏輯判斷,例如:"定義整型變量x1和x2"定義邏輯變量b1"為x1和x2賦值"為b1賦值。此處由于x1>x2,故b1為True"如果b1為True,則輸出字符串“x1>x2”Dim

x1,

x2

As

IntegerDim

b1

As

Booleanx1

=

10:

x2

=

5b1

=

x1

>

x2If

b1

ThenPrint

"x1>x2"End

If第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型邏輯類型數(shù)據(jù)可與整型或長整型數(shù)據(jù)互相轉(zhuǎn)換,轉(zhuǎn)換方法如下:①整型數(shù)據(jù)→邏輯數(shù)據(jù)非0→True;0→False②邏輯數(shù)據(jù)→整型數(shù)據(jù)True

-1;False

04.邏輯型four第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型5.日期型Five常用的日期數(shù)據(jù)表示方式為“#月/日/年#”(各占兩位,即#mm/dd/yy#),時(shí)間數(shù)據(jù)表示方式為“#時(shí):分:秒AM或PM#”(各占兩位,即#hh:mm:ssAM或PM#)。需要特別注意的是,在使用日期型數(shù)據(jù)時(shí),不能省略符號(hào)“#”。例如:#January

1,2016#、#1

Jan,16#、#5/12/16#、#2016-5-128:30:00

PM#。日期型數(shù)據(jù)用于表示日期和時(shí)間,它用8字節(jié)的浮點(diǎn)數(shù)表示。其中,日期范圍為:100年1月1日~9999年12月31日,時(shí)間范圍為:0:00:00~23:59:59。第頁共頁1133.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型6.對象型six對象數(shù)據(jù)類型通過32位(4個(gè)字節(jié))存儲(chǔ)空間存放可引用應(yīng)用程序中對象的地址。用戶可以用Set語句將某一實(shí)際對象的對象名賦給該對象變量,然后就可以用對象變量名代替實(shí)際的對象名了。例如:Dim

objLbl

As

ObjectSet

objLbl

=label1objLbl.Caption

=

"Welcome"第頁共頁113"定義對象類型變量"為變量賦值,此處為標(biāo)簽控件label1"設(shè)置標(biāo)簽的Caption(提示)屬性3.2.1

VB中的基本數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型7.變體型seven變體型是一種隨時(shí)可以改變數(shù)據(jù)類型的數(shù)據(jù),數(shù)據(jù)類型可根據(jù)上下文的變化而變化,是一種萬能的數(shù)據(jù)類型。除去定長String類型和用戶自定義數(shù)據(jù)類型外,它可以保存任何其他類型數(shù)據(jù)(數(shù)值型、日期型、字符型、對象型)。例如:Private

Sub

Form_Click()Dim

T

As

VariantT=12Form1.Print

TT="*********"Form1.Print

TEnd

Sub第頁共頁1133.2

VB中的數(shù)據(jù)類型3.2.2 自字義數(shù)據(jù)類型當(dāng)需要用幾個(gè)不同的基本數(shù)據(jù)類型來描述一批事物中的每一個(gè)事物的特性時(shí),使用自定義類型的數(shù)據(jù)將更為方便。例如,建立一個(gè)通訊錄,每個(gè)人的信息中需要有姓名、出生年月、家庭地址、郵政編碼、電話號(hào)碼甚至QQ號(hào)碼等,這時(shí)用一個(gè)自定義類型的變量就可以同時(shí)表示一個(gè)人的所有方面的信息。自定義數(shù)據(jù)類型的格式如下:[Public

|

Private]Type自定義數(shù)據(jù)類型名數(shù)據(jù)類型元素名As類型名數(shù)據(jù)類型元素名As類型名……End

Type第頁共頁113其中,方括號(hào)中的部分是可選項(xiàng),“|”的含義是指在由它分開的幾項(xiàng)中只能選擇其中的一項(xiàng)?!白远x數(shù)據(jù)類型名”是要定義的數(shù)據(jù)類型的名字,其命名規(guī)則遵從標(biāo)識(shí)符的命名規(guī)則;“數(shù)據(jù)類型元素名”也遵守同樣的規(guī)則,且不能是數(shù)組名;“類型名”可以是任何基本數(shù)據(jù)類型,也可以是用戶自定義數(shù)據(jù)類型。3.2.2 自字義數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型通常,我們把用戶用Type語句定義的數(shù)據(jù)類型稱為記錄類型。例如:"定義自定義數(shù)據(jù)類型PersInfo"定義數(shù)據(jù)類型元素Private

Type

PersInfoName

As

String*6Addr

As

String*20Age

As

IntegerEnd

TypeDim

x1

As

PersInfox1.Name="張三豐""聲明自定義數(shù)據(jù)類型變量"為自定義數(shù)據(jù)類型變量的數(shù)據(jù)元素賦值x1.Addr="河南省濮陽市清豐縣"x1.Age=24其中PersInfo是用戶定義的數(shù)據(jù)類型名,該數(shù)據(jù)類型由3個(gè)元素Name、Addr和Age組成。其中,Name和Addr是字符型,Age為整型。第頁共頁1133.2.2 自字義數(shù)據(jù)類型3.2

VB中的數(shù)據(jù)類型在使用Type語句時(shí),應(yīng)注意以下幾點(diǎn):(1)第頁共頁113(2)(3)記錄類型中的元素可以是變長字符串,也可以是定長字符串。當(dāng)在隨機(jī)文件中使用時(shí),必須使用定長字符串。記錄類型的定義必須放在模塊(包括標(biāo)準(zhǔn)模塊和窗體模塊)的聲明部分(即在“(通用)”段中),而且在使用記錄

類型之前,必須用Type語句加以定義。一般情況下,記錄

類型應(yīng)在標(biāo)準(zhǔn)模塊中定義,其變量可以出現(xiàn)在工程的任何

地方,且關(guān)鍵字Type前可以有Public(默認(rèn))或Private;如果在窗體模塊中定義,必須在前面加上關(guān)鍵字Private。在記錄類型中不能使用動(dòng)態(tài)數(shù)組。3.3.3常量變量和常量在程序運(yùn)行過程中,其值不能被改變的量稱為常量,其值能夠改變的量稱為變量。常量和變量名稱稱為標(biāo)識(shí)符。標(biāo)識(shí)符命名規(guī)則Section實(shí)例3-1——理解變量的類型和作用域3.3.2變量3.3 變量和常量3.3.1標(biāo)識(shí)符命名規(guī)則標(biāo)識(shí)符用來命名變量、符號(hào)常量、數(shù)組、方法、類、對象、接口和包等。為了提高程序的可讀性,標(biāo)識(shí)符最好“見名知義”,而且規(guī)范大小寫的使用方式。它們的命名規(guī)則如下:標(biāo)識(shí)符必須以英語字母或漢字開頭,其后可以是字母、漢字、數(shù)字或下劃線。但不得使用標(biāo)點(diǎn)符號(hào)、空格、@、&、$、#及運(yùn)算符等已有特殊含義的字符。標(biāo)識(shí)符字符的長度不能超過255個(gè)字符(若是窗體、控件和模塊的名字,則長度不得超過40個(gè)字符)。標(biāo)識(shí)符不能與VB中已定義過的或保留的關(guān)鍵字同名,以免造成不必要的麻煩。這些關(guān)鍵字是VB保留的具有固定含義的標(biāo)識(shí)符,用來表示系統(tǒng)提供的類型、語句、函數(shù)、過程、屬性和方法等。以下是一些合法的標(biāo)識(shí)符:Temp、abc_3、m1、zhiyuanshu和Flag等。第頁共頁1133.3 變量和常量3.3.2變量所謂變量,是指它所代表的內(nèi)容可以發(fā)生變化。在計(jì)算機(jī)中,變量實(shí)際上代表著某種類型數(shù)據(jù)對應(yīng)的存儲(chǔ)單元,變量的名字就是該單元的名字。變量的最大特點(diǎn)就是“喜新厭舊”,也就是說,一旦賦于了變量新的內(nèi)容,變量中原有的內(nèi)容就不再存在了。第頁共頁1133.3 變量和常量3.3.2變量1.變量的定義one一般來講,變量必須先定義、后使用。定義變量時(shí),必須定義其類型、名稱和數(shù)據(jù)類型,其格式如下:Dim

i1

As

IntegerDim

s1,s2

As

StringDim

b1

As

Byte,

s1

As

StringDim

x1#i2&=100Dim

x2"定義整型變量i1"定義兩個(gè)字符串變量s1和s2"在一行中定義了兩類變量"定義雙精度變量x1"定義了一個(gè)長整型變量i2并賦初值"“As數(shù)據(jù)類型”缺省,故變量x2的數(shù)據(jù)類型為變體型[Dim

|

Public

|

Private

|

Static]變量名稱[,變量名稱,…]As數(shù)據(jù)類型變量名稱+數(shù)據(jù)類型符[=初值](此方式僅用于在過程內(nèi)部定義局部變量)例如:第頁共頁1133.3 變量和常量3.3.2變量1.變量的定義one另外,VB還允許不聲明就使用變量,此時(shí)相當(dāng)于將該變量隱式聲明為Variant類型。在未給這類變量賦值之前,其值為Empty,給變量賦值后值的類型即為變量的數(shù)據(jù)類型,如下例所示:Private

Sub

Form_Click()Blint=100Print

BlintEnd

Sub第頁共頁113不過,雖然這種方式雖然給編程帶來了一定的方便,但由于這種方式使得程序可讀性變差,出錯(cuò)后不易查找等,因此,還是強(qiáng)烈建議大家在使用變量時(shí)應(yīng)先聲明后使用。此外,為了避免使用隱式聲明帶來的弊端,VB還提供了一個(gè)語句,以達(dá)到強(qiáng)制聲明變量的效果。該語句應(yīng)加在窗體或標(biāo)準(zhǔn)模塊的“(通用)”聲明段中,其格式為:Option

Explicit增加該語句后,程序在運(yùn)行時(shí)一旦遇到未聲明的變量,就會(huì)發(fā)出錯(cuò)誤警告。3.3 變量和常量3.3.2變量2.變量的作用范圍two在VB中,有4個(gè)關(guān)鍵字(Dim、Public、Private和Static)用于確定變量類型,這4個(gè)關(guān)鍵字決定了用戶可以在何處聲明變量,以及變量的作用范圍,其意

義如下。1)

DimDim既可以在過程內(nèi)部聲明變量,也可以在過程外部聲明變量。在過程內(nèi)部聲明的變量是局部變量,只能在聲明變量的過程內(nèi)部使用,在其他過程中是不能使用它們的,因此,不同過程中可以聲明完全同名的變量,它們彼此互不影響;在過程外部聲明的變量是私有變量,可在聲明變量的模塊的所有過程中使用,但不能在其他模塊中使用。第頁共頁1133.3 變量和常量3.3.2變量2.變量的作用范圍two2)

StaticStatic只能在過程內(nèi)部聲明變量,它聲明的變量為靜態(tài)局部變量,它在整個(gè)應(yīng)用程序運(yùn)行期間一直存在。而Dim聲明的局部變量屬于動(dòng)態(tài)局部變量,過程結(jié)束,變量所占存儲(chǔ)空間即被釋放。如果多次調(diào)用同一個(gè)過程,靜態(tài)局部變量會(huì)保存對它的設(shè)置,即后一次調(diào)用該過程時(shí),靜態(tài)局部變量的值將是上一次調(diào)用這個(gè)過程時(shí)為它設(shè)置的值;而動(dòng)態(tài)局部變量不會(huì)保存對它的設(shè)置,每次退出一個(gè)過程,這個(gè)過程中的動(dòng)態(tài)局部變量的值都將丟失。第頁共頁1133.3 變量和常量3.3.2變量2.變量的作用范圍two3)Private和PublicPrivate和Public只能在窗體或模塊的“(通用)”段(過程外部)聲明變量。Private語句聲明的變量是私有變量,與過程外部Dim聲明的變量的作用完全相同,變量只能用于本模塊;Public聲明的變量是全局變量,可在該工程的所有模塊中使用。第頁共頁1133.3 變量和常量3.3.2變量3.變量的賦值three程序中凡是參與運(yùn)算的變量,必須在使用之前給它們賦值?!?”即為賦值符號(hào),其左側(cè)為變量名,右側(cè)是一個(gè)表達(dá)式,表達(dá)式的結(jié)果即為該變量的值。例如,“A=5”是最簡單的賦值語句。變量的其他賦值方式,將在后續(xù)章節(jié)中介紹。第頁共頁1133.3 變量和常量實(shí)例

3-1理解變量的類型和作用域第頁共頁1133.3 變量和常量啟動(dòng)VB

6.0,新建一個(gè)標(biāo)準(zhǔn)EXE工程。實(shí)例3-1理解變量的類型和作用域步驟1兩次雙擊工具箱中的命令按鈕,在窗體中創(chuàng)建兩個(gè)標(biāo)準(zhǔn)尺寸的命令按鈕Command1和Command2。適當(dāng)移動(dòng)其位置,結(jié)果如右側(cè)上圖所示。步驟2步驟3利用屬性窗口分別修改窗體Form1的Caption屬性為“變量測試”,兩個(gè)命令按鈕的Caption屬性為“公共變量”和“局部變量”,此時(shí)畫面如右側(cè)下圖所示。第頁共頁1133.3 變量和常量步驟4步驟5雙擊窗體空白處,打開代碼編輯器窗口。打開對象下拉列表,選擇“(通用)”,如右圖所示。在代碼編輯區(qū)輸入如下兩行代碼,定義兩個(gè)公共變量:Public

PbVar1

As

IntegerPrivate

PvVar1

As

Integer步驟6在Private

Sub

Form_Load()過程中輸入如下兩行代碼,為兩個(gè)公共變量賦值(加載窗體時(shí)執(zhí)行此事件代碼):PbVar1=1PvVar1=2實(shí)例3-1理解變量的類型和作用域第頁共頁1133.3 變量和常量實(shí)例3-1理解變量的類型和作用域步驟7在對象下拉列表中選擇Command1,此時(shí)其Click

過程被自動(dòng)選中,在Private

Sub

Command_Click()過程中輸入如下一行代碼,輸出兩個(gè)公共變量值:步驟8MsgBox

"Public變量PbVar1

=

"

&

PbVar1

&

_"

Private變量PvVar1

=

"

&

PvVar1打開對象下拉列表,再次選擇“(通用)”,輸入如下代碼:"定義動(dòng)態(tài)局部變量,默認(rèn)值為0"定義靜態(tài)局部變量,默認(rèn)值為0第頁共頁113"變量測試過程Private

Sub

dsVarTest(x

As

Integer)Dim

dVar1

As

IntegerStatic

sVar1

As

IntegerdVar1

=

dVar1

+

xsVar1

=

sVar1

+

xMsgBox

"Dim變量="&

dVar1

&"Static變量="&

sVar1End

Sub3.3 變量和常量實(shí)例3-1理解變量的類型和作用域在對象下拉列表中選擇Command2,此時(shí)其Click過程被自動(dòng)選中,在

Private

Sub

Command_Click()過程中輸入如下一行代碼:步驟9dsVarTest

1"調(diào)用變量測試過程此時(shí)代碼編輯窗口中的內(nèi)容將如下圖所示。第頁共頁1133.3 變量和常量實(shí)例3-1理解變量的類型和作用域,單擊標(biāo)準(zhǔn)工具欄中的“保存工程”按鈕

將窗體文件保存

為Form3-1-1.frm文件,將工程保存為“工程3-1.vbp”文件。步驟10步驟11單擊標(biāo)準(zhǔn)工具欄中的“啟動(dòng)”按鈕

,運(yùn)行程序。單擊“公共變量”按鈕,可以查看Public變量和PriVate變量的值。步驟12單擊“局部變量”按鈕,可以查看局部變量的值,開始時(shí)動(dòng)態(tài)局部變量dVar1和靜態(tài)局部變量sVar1的值均為1。單擊“確定”按鈕,返回窗體,再次單擊“局部變量”按鈕,我們可以看到動(dòng)態(tài)局部變量dVar1的值仍為1,而靜態(tài)局部變量sVar1的值變成了2。第頁共頁1133.3 變量和常量步驟13單擊“確定”按鈕,返回窗體,第3次單擊“局部變量”按鈕,我們可以看到動(dòng)態(tài)局部變量dVar1的值仍為1,而靜態(tài)局部變量sVar1的值變成了3。如下圖所示。第頁共頁1133.3 變量和常量3.3.3常量在程序設(shè)計(jì)時(shí),如果使用太多的常數(shù),一旦因這些常數(shù)或其中的一些常數(shù)發(fā)生變化,在整個(gè)程序中依次查找它們并逐個(gè)修改是件很麻煩的事,況且,大量的數(shù)據(jù)也使人不易分清其具體意義。為此,VB中提供了一個(gè)聲明常量的功能,即用戶可以為每個(gè)常數(shù)定義一個(gè)有意義的名字,凡是程序中需要使用此常數(shù)的地方,不必再寫這個(gè)常數(shù),而是以其名字代替。這樣,如果需要修改程序中的某個(gè)常數(shù),只需在聲明部分修改其數(shù)值即可,而不必在程序中逐個(gè)修改。外部常量VB中提供的常量有兩大類,即內(nèi)部常量和外部常量。內(nèi)部常量第頁共頁1133.3 變量和常量3.3.3常量1.系統(tǒng)內(nèi)部常量one內(nèi)部常量也稱系統(tǒng)常數(shù),由應(yīng)用程序和控件提供,通常都帶有表示對象庫的前綴,如VB和VBA等對象庫的常量都以“vb”開頭。例如:Form1.BackColor=vbBlue

"vbBlue是顏色內(nèi)部常量,表示藍(lán)色內(nèi)部常量可通過對象瀏覽器查看。選擇“視圖”菜單中的“對象瀏覽器”命令,打開對象瀏覽器窗口,向下拖動(dòng)右窗格成員列表框右側(cè)滾動(dòng)條中的滑塊,找到以“vb”開頭的一系列標(biāo)識(shí)符,這些基本上都是VB定義的內(nèi)部常量。單擊其中任意常量,可在窗口下面的窗格中看到其定義和簡單的解釋,如右圖所示。第頁共頁1133.3 變量和常量3.3.3常量2.用戶自定義常量two用戶也可自己定義常量,其語法格式如下:[Public

|

Private]Const常量名[As數(shù)據(jù)類型]=表達(dá)式其中,常量與變量具有相同的命名規(guī)則,表達(dá)式將在后面進(jìn)行介紹。此語句聲明的自定義常量的數(shù)據(jù)類型可為22頁中的表上列出的除object以外的任意數(shù)據(jù)類型。例如:Const

BIRTHDAY

As

Date=#01/01/1963#上述語句定義了一個(gè)名為BIRTHDAY的常量,它表示日期常數(shù)“1963年1月1日”。在BIRTHDAY作用域中,所有的BIRTHDAY就代表“1963年1月1日”這個(gè)特定的日期。如果以后要修改此日期,只需修改此處數(shù)值即可。第頁共頁1133.3 變量和常量2.用戶自定義常量3.3.3常量two提示常量在其作用域中是不能被賦值的。為與變量區(qū)別,常量通常只用大寫英文字母,如PI,TOPSCORE等。(1)(2)第頁共頁1133.4運(yùn)算符和表達(dá)式Section算術(shù)運(yùn)算比較運(yùn)算(關(guān)系運(yùn)算)邏輯運(yùn)算連接運(yùn)算表達(dá)式的執(zhí)行順序3.4 運(yùn)算符和表達(dá)式在運(yùn)算時(shí),用運(yùn)算符連接運(yùn)算量組成一個(gè)式子,來表示對運(yùn)算量進(jìn)行何種運(yùn)算,這種由運(yùn)算符連接運(yùn)算量組成的式子稱為表達(dá)式。例如,3+6、sin(3.14)、2*x+y等都是表達(dá)式。VB中提供了豐富的運(yùn)算符,可以構(gòu)成多種表達(dá)式。arithmeticlogicalcomparisonconcatenation算術(shù)運(yùn)算比較運(yùn)算(即關(guān)系運(yùn)算)邏輯運(yùn)算連接運(yùn)算運(yùn)算是對數(shù)據(jù)進(jìn)行加工的過程。在VB系統(tǒng)中,計(jì)算機(jī)對數(shù)據(jù)進(jìn)行的運(yùn)算按功能可以劃分為四大類:第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.1 算術(shù)運(yùn)算1.算術(shù)運(yùn)算符one第頁共頁113算術(shù)運(yùn)算是最常用的運(yùn)算,VB提供的算術(shù)運(yùn)算符如下表所示。運(yùn)算運(yùn)算符表達(dá)式示例運(yùn)算運(yùn)算符表達(dá)式示例冪^A

^

2整數(shù)除法\A

\

B取負(fù)--

A取模ModA

Mod

B乘法*A

*

B加法+A

+

B浮點(diǎn)除法/A

/

B減法-A

-

B很多的運(yùn)算符都和我們在數(shù)學(xué)中學(xué)到的算術(shù)運(yùn)算符意義相同,但也有一部分和數(shù)學(xué)中的不一樣,這些運(yùn)算符大家要特別記憶一下,否則在寫表達(dá)式時(shí)就會(huì)發(fā)生錯(cuò)誤。3.4 運(yùn)算符和表達(dá)式3.4.1 算術(shù)運(yùn)算1.算術(shù)運(yùn)算符one1)冪運(yùn)算冪運(yùn)算用來計(jì)算乘方和方根,其運(yùn)算符為“^”。以下是幾個(gè)冪運(yùn)算的例子:x=2

^

2x=4

^

0.5x=10

^

-3x=1000

^(1/3)"2的平方,結(jié)果為4"4的平方根,結(jié)果為2"10的負(fù)3次方,結(jié)果為1/1000,即0.001"1000的立方根,結(jié)果為10第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.1 算術(shù)運(yùn)算1.算術(shù)運(yùn)算符錯(cuò)誤:2^3+2正確:2^(3+2)"2的3次方,再加2,結(jié)果為10"2的3+2次方,結(jié)果為32one提示當(dāng)指數(shù)是一個(gè)表達(dá)式時(shí),必須加上括號(hào),因?yàn)樵谒阈g(shù)運(yùn)算符中冪運(yùn)算具有最高級別。例如,我們用算術(shù)表達(dá)式表示2的3+2次方:第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.1 算術(shù)運(yùn)算1.算術(shù)運(yùn)算符2)浮點(diǎn)數(shù)除法與整數(shù)除法one浮點(diǎn)數(shù)除法的運(yùn)算符是“/”,其運(yùn)算結(jié)果為浮點(diǎn)數(shù)。例如表達(dá)式5/2的結(jié)果為2.5,與數(shù)學(xué)中的除法一樣。整數(shù)除法的運(yùn)算符是“\”,其運(yùn)算結(jié)果為整型值,因此表達(dá)式5\2的結(jié)果為2。當(dāng)操作數(shù)帶有小數(shù)時(shí),首先將其四舍五入為整型或長整型,然后再進(jìn)行運(yùn)算。操作數(shù)必須在-2147483648.5~2147483647.5范圍內(nèi),運(yùn)算后其結(jié)果進(jìn)行取整操作,不進(jìn)行舍入處理。例如:第頁共頁113x=10\4y=1.2\0.6"運(yùn)算結(jié)果為x=2"運(yùn)算結(jié)果為y=13.4 運(yùn)算符和表達(dá)式3.4.1 算術(shù)運(yùn)算3)取模運(yùn)算取模運(yùn)算用來求余數(shù),其結(jié)果為第二個(gè)操作數(shù)整除第一個(gè)操作數(shù)所得的余數(shù),例如表達(dá)式10

Mod

3的結(jié)果為1。如果兩個(gè)操作數(shù)為實(shí)數(shù),也要先進(jìn)行四舍五入取整,再進(jìn)行取模運(yùn)算,例如2.1

Mod

0.8,首先將兩個(gè)操作數(shù)進(jìn)行四舍五入得到2和1,因此上述表達(dá)式的結(jié)果為0。1.算術(shù)運(yùn)算符one第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.1 算術(shù)運(yùn)算2.算術(shù)運(yùn)算符的優(yōu)先級two不同的算術(shù)運(yùn)算符在表達(dá)式中參與運(yùn)算的級別是不同的,其中冪運(yùn)算的級別最高,加減運(yùn)算符的級別最低。表達(dá)式的運(yùn)算規(guī)則為:先乘除,后加減;乘方優(yōu)先于乘除;函數(shù)優(yōu)先于乘方;取模次于乘除,優(yōu)先于加減;括號(hào)內(nèi)最優(yōu)先;同一級的運(yùn)算按其位置從左至右進(jìn)行。根據(jù)上述運(yùn)算規(guī)則,相應(yīng)的算術(shù)運(yùn)算符的優(yōu)先級如右表所示。優(yōu)先級運(yùn)算符意義1(

)括號(hào)2^冪(乘方)3*

,

/乘,浮點(diǎn)數(shù)除4\整除5Mod取余6+

,

-加,減第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.2比較運(yùn)算(關(guān)系運(yùn)算)比較運(yùn)算符也稱關(guān)系運(yùn)算符,用來對兩個(gè)表達(dá)式的值進(jìn)行比較,比較的結(jié)果是一個(gè)邏輯值,即真(True)或假(False)。VB提供了8個(gè)比較運(yùn)算符,如下表所示。運(yùn)算符測試關(guān)系表達(dá)式例子運(yùn)算符測試關(guān)系表達(dá)式例子=相等A=B<=小于等于A<=B<>或><不等A<>B>=大于等于A>=B<小于A<BLike比較樣式"fd"

Like

"f

?">大于A>BIs比較對象變量第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.2比較運(yùn)算(關(guān)系運(yùn)算)用比較運(yùn)算符連接兩個(gè)算術(shù)表達(dá)式所組成的式子叫做比較表達(dá)式。比較表達(dá)式中的運(yùn)算量可以是數(shù)值型、字符串型、貨幣型、日期型等類型的量,但是在同一個(gè)表達(dá)式中兩個(gè)量應(yīng)為同一類型。比較表達(dá)式的結(jié)果是一個(gè)Boolean類型的值,即True和False,它們分別表示整型數(shù)-1(非零)和0。比較運(yùn)算符之間的優(yōu)先級是相同的,但它們的優(yōu)先級都低于算術(shù)運(yùn)算符。在應(yīng)用程序中,比較運(yùn)算通常作為判斷用,例如:a=100If

a<>150

Then

Print"不相等"由于a不等于150,所以執(zhí)行Then后面的語句,執(zhí)行結(jié)果會(huì)輸出“不相等”。第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.2比較運(yùn)算(關(guān)系運(yùn)算)關(guān)于比較運(yùn)算符,有以下幾點(diǎn)需要注意:(1)應(yīng)當(dāng)盡可能避免對兩個(gè)浮點(diǎn)數(shù)進(jìn)行“相等”或“不等”的判斷,否則可能出錯(cuò)。第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.2比較運(yùn)算(關(guān)系運(yùn)算)(2)在數(shù)學(xué)中,一個(gè)數(shù)x是否在區(qū)間[a,b]時(shí),我們習(xí)慣寫成a≤x≤b,但在VB中不允許這樣表示,應(yīng)該寫成:a<=x

And

x<=b。第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.2比較運(yùn)算(關(guān)系運(yùn)算)(3)字符串?dāng)?shù)據(jù)進(jìn)行比較運(yùn)算時(shí),按照其字母的ASCII碼值進(jìn)行比較。在比較兩個(gè)字符串時(shí),先比較第一個(gè)字符,其中ASCII碼值較大的字符所在字符串大,如果第一個(gè)字符相同,再比較第二個(gè)字符……依次類推。例如:"zhao">"zhang"為真,是因?yàn)橹饌€(gè)比較前三個(gè)字符,其

ASCII值相同,而第四個(gè)字符則不同,“o”的ASCII值大于“n”的ASCII值(注意:不是比較其長短)。第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.2比較運(yùn)算(關(guān)系運(yùn)算)(4)關(guān)系運(yùn)算符Like用于比較符號(hào)左邊的字符串是否與符號(hào)右邊的字符串匹配。右邊的字符串可包含通配符*、?、#等。例如:A

=

"Visual"

Like

"V*l"B="變量"Like"?量"C

=

"VB6"

Like

"VB#""A的結(jié)果為True,*代表任意字符串"B的結(jié)果為True,?代表一個(gè)漢字或英語"字母"C的結(jié)果為True,#代表一個(gè)末位的英文"字母或數(shù)字第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.2比較運(yùn)算(關(guān)系運(yùn)算)(5)關(guān)系運(yùn)算符Is用于比較兩個(gè)object類型的變量是否引用同一個(gè)對象。例如,窗體上有一個(gè)命令按鈕Command1,且有如下變量聲明:Dim

a

As

object,

b

As

objectDim

ab

As

Boolean"聲明a和b為對象型變量"聲明ab為邏輯型變量執(zhí)行下面的語句:Set

a

=

Command1Set

b

=

aab=

a

Is

b則ab的值為True。第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.3邏輯運(yùn)算邏輯運(yùn)算是指對兩個(gè)布爾類型的運(yùn)算量進(jìn)行的運(yùn)算。所以,邏輯運(yùn)算也稱為“布爾”運(yùn)算。參與邏輯運(yùn)算的運(yùn)算量為布爾值,運(yùn)算結(jié)果也是一個(gè)布爾值。在VB中,邏輯運(yùn)算符一共有如下6個(gè)。2)And(與)3)Or(或)1)Not(非)第頁共頁113由真變假,由假變真,進(jìn)行“取反”運(yùn)算。例如:x=Not(1<2)

"1<2值為True,進(jìn)行了“取反”運(yùn)算后,Not(1<2)的值為False對兩個(gè)關(guān)系表達(dá)式的值進(jìn)行比較,如果兩個(gè)表達(dá)式的值均為True,則結(jié)果為True,否則結(jié)果為False。例如:x=1<2

And

3<6

"結(jié)果為True。對兩個(gè)表達(dá)式進(jìn)行比較,如果其中一個(gè)表達(dá)式的值為True,那么結(jié)果為True。當(dāng)且僅當(dāng)兩個(gè)表達(dá)式的值都是False,結(jié)果才為False。例如:x=1

<

2

Or

3

>

6"結(jié)果為True3.4 運(yùn)算符和表達(dá)式3.4.3邏輯運(yùn)算5)Eqv(等價(jià))6)Imp(蘊(yùn)含)4)Xor(異或)第頁共頁113如果兩個(gè)表達(dá)式同時(shí)為True或同時(shí)為Fasle時(shí),其結(jié)果為True,否則結(jié)果為Fasle。例如:x=1<2

Eqv

3>6

"結(jié)果為Fasle當(dāng)?shù)谝粋€(gè)表達(dá)式為True,且第二個(gè)表達(dá)式為Fasle,其結(jié)果為Fasle。例如:x=1<2

Imp

3>6

"結(jié)果為Fasle當(dāng)兩個(gè)表達(dá)式的值一個(gè)為True,另一個(gè)為False時(shí),結(jié)果為True,否則結(jié)果為Fasle。例如:x=1

<

2

Xor

3

>

6x=1

<

2

Xor

3

<

6"結(jié)果為True"結(jié)果為False3.4 運(yùn)算符和表達(dá)式3.4.3邏輯運(yùn)算下表列出了六種邏輯運(yùn)算的真值表。XYNot

XX

And

YX

Or

YX

Xor

YX

Eqv

YX

Imp

Y-1-10-1-10-1-1000-1-100-1-10-1-1000-1000-1第頁共頁113-10-1-13.4 運(yùn)算符和表達(dá)式3.4.4連接運(yùn)算連接運(yùn)算可以對各種不同的運(yùn)算量或表達(dá)式進(jìn)行連接運(yùn)算,用到的連接運(yùn)算符為“&”。在各種不同的運(yùn)算符之間,連接符的優(yōu)先順序排在所有算術(shù)運(yùn)算符的后面,但在比較運(yùn)算符之前。連接表達(dá)式中若含有其他類型的運(yùn)算表達(dá)式,系統(tǒng)會(huì)首先對各個(gè)表達(dá)式進(jìn)行計(jì)算,然后進(jìn)行連接。此外,連接結(jié)果可以直接輸出,例如:Print"2

*

10+6="&

2*10+6

"輸出結(jié)果為:2

*

10+6=26除了“&”外,算術(shù)運(yùn)算符“+”也可以用做字符串連接符,但“+”號(hào)只能用于連接字符串,例如:Print"中國"+"北京""輸出結(jié)果為:中國北京第頁共頁1133.4 運(yùn)算符和表達(dá)式(1)首先進(jìn)行函數(shù)運(yùn)算;3.4.5表達(dá)式的執(zhí)行順序一個(gè)表達(dá)式可能含有多種運(yùn)算,計(jì)算機(jī)按一定的順序?qū)Ρ磉_(dá)式求值。一種類型的運(yùn)算其各運(yùn)算符之間有不同的優(yōu)先級(參照前面介紹的關(guān)于算術(shù)運(yùn)算符的優(yōu)先級和邏輯運(yùn)算符的優(yōu)先級),不同種類的運(yùn)算之間還有不同的優(yōu)先級。若在一個(gè)表達(dá)式中出現(xiàn)了多種運(yùn)算,則一般的優(yōu)先順序如下:(2)接著進(jìn)行算術(shù)運(yùn)算,其次序?yàn)椋◤淖笾劣?,?yōu)先級遞減):冪(^)→取負(fù)(-)→乘(*)、浮點(diǎn)除(/)→整除(\)→取模(mod)→加(+)、減(-);(3)接著進(jìn)行連接運(yùn)算;(4)然后進(jìn)行比較運(yùn)算;(5)最后進(jìn)行邏輯運(yùn)

算,順序?yàn)椋◤淖笾劣遥瑑?yōu)先級遞減):Not→And→Or→Xor→Eqv→Imp。第頁共頁1133.4 運(yùn)算符和表達(dá)式3.4.5表達(dá)式的執(zhí)行順序提示(1)乘法和浮點(diǎn)除(或者加和減)同時(shí)出現(xiàn)在表達(dá)式中時(shí),將按照它們從左至右出現(xiàn)的順序進(jìn)行計(jì)算,但是,用括號(hào)可以改變表達(dá)式的優(yōu)先順序,強(qiáng)令它的某些部分優(yōu)先運(yùn)行。括號(hào)內(nèi)的運(yùn)算總是優(yōu)先于括號(hào)外的運(yùn)算。第頁共頁113(2)當(dāng)冪和負(fù)號(hào)相鄰,負(fù)號(hào)優(yōu)先。例如:

x=2^-2"結(jié)果為0.25(2的負(fù)2次方)3.4 運(yùn)算符和表達(dá)式3.4.5表達(dá)式的執(zhí)行順序在書寫表達(dá)式時(shí),還應(yīng)注意以下幾點(diǎn):乘號(hào)不能省略,也不能像在數(shù)學(xué)中那樣用“·”代替。第頁共頁113在一般情況下,不允許兩個(gè)運(yùn)算符相連,應(yīng)

當(dāng)用括號(hào)隔開。表達(dá)式中使用括號(hào)時(shí)只能用圓括號(hào),不能用方括號(hào)和或花括號(hào)。在冪運(yùn)算中,當(dāng)表達(dá)式不是單個(gè)常量或變量時(shí),要用括號(hào)括起來,例如:(x+y)^

(a+b)。3.5常用內(nèi)部函數(shù)數(shù)學(xué)函數(shù)轉(zhuǎn)換函數(shù)Section3.5.3時(shí)間日期函數(shù)隨機(jī)數(shù)函數(shù)字符串函數(shù)實(shí)例3-2——制作閃爍的文字3.5 常用內(nèi)部函數(shù)函數(shù)的概念與一般數(shù)學(xué)中的概念大致相同,是指一種特定的運(yùn)算。在程序中要使用一個(gè)函數(shù)時(shí),只要給出函數(shù)名和參數(shù),就能得到它的函數(shù)值。在VB中,函數(shù)分為兩類:內(nèi)部函數(shù)和用戶自定義函數(shù)。本節(jié)主要介紹VB中的內(nèi)部函數(shù),用戶自定義函數(shù)的方法將在后面介紹。內(nèi)部函數(shù)也稱標(biāo)準(zhǔn)函數(shù),VB提供了大量的內(nèi)部函數(shù),使用時(shí)只要直接調(diào)用函數(shù)名即可。內(nèi)部函數(shù)大體分為5類:數(shù)學(xué)函數(shù)轉(zhuǎn)換函數(shù)時(shí)間日期函數(shù)隨機(jī)數(shù)函數(shù)字符串函數(shù)第頁共頁1133.5 常用內(nèi)部函數(shù)3.5.1數(shù)學(xué)函數(shù)VB中常用的數(shù)學(xué)函數(shù)如下表所示。函數(shù)Sin(x)功能返回自變量x的正弦值函數(shù)Sgn(x)功能返回自變量x的符號(hào)Cos(x)返回自變量x的余弦值Sqr(x)返回自變量x的平方根Tan(x)返回自變量x的正切值Exp(x)返回e的x次方Atn(x)返回自變量x的反正切值Log(x)返回以e為底,x的對數(shù)Abs(x)返回自變量x的絕對值第頁共頁1133.5 常用內(nèi)部函數(shù)3.5.1數(shù)學(xué)函數(shù)說明:(1)三角函數(shù)的自變量x是一個(gè)數(shù)值表達(dá)式。其中Sin、Cos和Tan的自變量是

以弧度為單位的角度,而Atn函數(shù)的自變量是正切值,它返回正切值為x的角度,以弧度為單位。角度和弧度之間的轉(zhuǎn)換關(guān)系如下:1度=π/180=3.14159/180(弧度)例如,要求30°角的正弦值,可執(zhí)行如下語句:第頁共頁113?

sin(30*3.14159/180).4999996169872563.5 常用內(nèi)部函數(shù)3.5.1數(shù)學(xué)函數(shù)說明:符號(hào)函數(shù)Sgn返回的值是一個(gè)自變量的符號(hào)。當(dāng)自變量x>0時(shí)值為“1”;當(dāng)自變量x<0時(shí)值為“-1”;當(dāng)自變量x=0時(shí)值為“0”。函數(shù)Log返回的值是以e為底的對數(shù),所以自變量x的值應(yīng)大于0。應(yīng)該注意的是,在

VB中函數(shù)Log是以e(e約等于2.718282)為底的對數(shù)函數(shù)。x=Log(1)x=Log(10)x=Log(2.718282)第頁共頁113"結(jié)果為0"結(jié)果為2.302585"結(jié)果為1.000000063106393.5 常用內(nèi)部函數(shù)3.5.2轉(zhuǎn)換函數(shù)VB中的常用轉(zhuǎn)換函數(shù)如下表所示。第頁共頁113函數(shù)功能函數(shù)功能將x值的小數(shù)部分四舍五入,轉(zhuǎn)換為整型將x的值轉(zhuǎn)為貨幣類型值,小數(shù)部分最多保留4位,且自動(dòng)四舍五入Int(x)求不大于自變量x的最大整數(shù)Cint(x)Fix(x)去掉一個(gè)浮點(diǎn)數(shù)的小數(shù)部分,保留其整數(shù)部分Ccur(x)Hex$(x)把一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)Cdbl(x)將x的值轉(zhuǎn)為雙精度浮點(diǎn)數(shù)Oct$(x)將十進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)Clng(x)同Cint(x),只是結(jié)果為長整型Asc(x$)返回字符串x$第一個(gè)字符的ASCII碼。

如果x$是數(shù)值,系統(tǒng)會(huì)自動(dòng)將其轉(zhuǎn)換為字符串Csng(x)將x的值轉(zhuǎn)為單精度浮點(diǎn)數(shù)Chr$(x)將x的值轉(zhuǎn)化為相應(yīng)的ASCII字符Cvar(x)將x的值轉(zhuǎn)為變體類型值Str$(x)把x的值轉(zhuǎn)化為一個(gè)字符串3.5 常用內(nèi)部函數(shù)3.5.2轉(zhuǎn)換函數(shù)說明:(1)如果x>0,F(xiàn)ix(x)=Int(x),否則,如果x<0,F(xiàn)ix(x)仍取x的整數(shù),但I(xiàn)nt(x)為

x的整數(shù)部分減1。對于Cint(x)來說,無論x是正數(shù)還是負(fù)數(shù),均按四舍五入處理。Clng(x)同Cint(x),只是結(jié)果為長整型。如下例所示:Private

Sub

Command1_Click()Dim

x1,

x2,

x3,

x4

As

Doublex1

=

12.89:

x2

=

20.34:

x3

=

-8.79:

x4

=

-7.34第頁共頁113Debug.Print

"Fix(x1)

=";

Fix(x1);

"

Int(x1)

=";

Int(x1);

"

Cint(x1)

=";

CInt(x1)Debug.Print

"Fix(x2)

=";

Fix(x2);

"

Int(x2)

=";

Int(x2);

"

Cint(x2)

=";

CInt(x2)Debug.Print

"Fix(x3)

=";

Fix(x3);

"

Int(x3)

=";

Int(x3);

"

Cint(x3)

=";

CInt(x3)Debug.Print

"Fix(x4)

=";

Fix(x4);

"

Int(x4)

=";

Int(x4);

"

Cint(x4)

=";

CInt(x4)Debug.Print

"Clng(x1)

=";

CLng(x1);

"Clng(x2)

=";

CLng(x2);

_"Clng(x3)

=";

CLng(x3);

"Clng(x4)

=";

CLng(x4)End

Sub程序運(yùn)行結(jié)果如下:Fix(x1)

=

12Fix(x2)

=

20Fix(x3)

=-8Fix(x4)

=-7Int(x1)

=

12 Cint(x1)

=

13Int(x2)

=

20 Cint(x2)

=

20Int(x3)

=-9 Cint(x3)

=-9Int(x4)

=-8 Cint(x4)

=-7Clng(x1)

=

13

Clng(x2)

=

20

Clng(x3)

=-9

Clng(x4)

=-3.5 常用內(nèi)部函數(shù)3.5.2轉(zhuǎn)換函數(shù)(2)Asc(x$)函數(shù)將返回字符串x$中第一個(gè)字符的ASCII碼。說明:如果x$是數(shù)值,系統(tǒng)會(huì)自動(dòng)將其轉(zhuǎn)換為字符串;Chr$(x)可將x的值轉(zhuǎn)化為相應(yīng)的ASCII字符;Str$(x)把x數(shù)值原樣轉(zhuǎn)換為字符串。如下例所示:x1

=

55:

x2

=

67Debug.Print

"Asc($x1)

=";

Asc(x1)Debug.Print

"Asc($x2)

=";

Asc(x2)Debug.Print

"Chr$(x1)

=";

Chr$(x1)Debug.Print

"Chr$(x2)

=";

Chr$(x2)Debug.Print

"Str$(x1)

=";

Str$(x1)Debug.Print

"Str$(x2)

=";

Str$(x2)第頁共頁113"返回“5”的ASCII碼"返回“6”的ASCII碼"返回ASCII碼為55的字符"返回ASCII碼為67的字符"將數(shù)值轉(zhuǎn)換為字符串

"將數(shù)值轉(zhuǎn)換為字符串程序運(yùn)行結(jié)果如下:Asc($x1)

=

53Asc($x2)

=

54Chr$(x1)

=7Chr$(x2)

=CStr$(x1)

=

55Str$(x2)

=

673.5 常用內(nèi)部函數(shù)3.5.2轉(zhuǎn)換函數(shù)說明:Hex$(x)函數(shù)和Oct$(x)函數(shù)分別用來將十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)和八進(jìn)制數(shù),如下例所示:第頁共頁113x

=

55Debug.Print

"Hex$(x)

=";

Hex$(x)Debug.Print

"Oct$(x)

=";

Oct$(x)"十進(jìn)制轉(zhuǎn)換為十六進(jìn)制,結(jié)果為37"十進(jìn)制轉(zhuǎn)換為八進(jìn)制,結(jié)果為67第頁3.5 常用內(nèi)部函數(shù)3.5.3時(shí)間日期函數(shù)VB中常用的時(shí)間日期函數(shù)如右表所示。共Mo1n13th頁(date)類別函數(shù)功能返回系統(tǒng)日期,如2017/2/13或2017-2-13返回系統(tǒng)時(shí)間,如18:41:58返回系統(tǒng)日期和時(shí)間,如

2017/2/13

18:41:58返回0~23之間表示小時(shí)的整數(shù)。

time可以是任何能夠表示時(shí)間的數(shù)值表達(dá)式、字符串表達(dá)式或變體

變量。如果time為Null,則返回值也為Null返回0~59之間表示分鐘的整數(shù)返回0~59之間表示秒的整數(shù)

返回1~31之間的整數(shù),表示一個(gè)月中的某一日。date可以是任何能夠表示日期的數(shù)值表達(dá)式、字符串表達(dá)式或變體變量。如果date為Null,則返回值也為Null返回1~7之間表示星期的整數(shù)返回1~12之間表示月份的整數(shù)系統(tǒng)日期、時(shí)間函數(shù)DateTimeNo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論