- Visual Basic實(shí)例精通
- 柴相花等編著
- 1733字
- 2019-03-01 14:47:14
第3章 VB基本語句
在前兩章中分別介紹了VB的語言基礎(chǔ),從中了解了VB的標(biāo)識(shí)符、常量、變量、數(shù)據(jù)類型以及數(shù)組等相關(guān)知識(shí),除了這些基本知識(shí)之外,VB的基礎(chǔ)知識(shí)中還包括基本語句,這是也是編程的基礎(chǔ)知識(shí),VB基本語句根據(jù)VB中的不同結(jié)構(gòu)分為不同的語句,在VB中大致有三種結(jié)構(gòu):順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)。在順序結(jié)構(gòu)中,主要包括賦值語句、Print方法、注釋語句和End語句;在選擇結(jié)構(gòu)中,主要包括If語句、Select Case語句;在循環(huán)結(jié)構(gòu)中,主要包括For循環(huán)語句、While循環(huán)語句和Do循環(huán)語句。本章通過實(shí)例分別對這些知識(shí)進(jìn)行介紹。
3.1 賦值語句
介紹VB基本語句按照從簡入難的順序進(jìn)行,首先介紹賦值語句,賦值語句是順序結(jié)構(gòu)中最簡單的語句,主要用于對一個(gè)對象的賦值。通過本節(jié)的介紹希望讀者能夠注意賦值過程中容易出現(xiàn)的一些問題。
技術(shù)要點(diǎn)
在本實(shí)例中主要使用的技術(shù)是賦值語句的運(yùn)用方法,F(xiàn)orm的Click事件。主要功能和用法如下:
●賦值語句是最簡單的一種語句,但是賦值語句的運(yùn)用是最常見的。
● Form的Click事件,是單擊本窗體時(shí)觸發(fā)的事件。
賦值語句的主要語法如下:
[Let]VarName=Expression
其中,Let參數(shù)是可選項(xiàng),主要是一種標(biāo)識(shí)作用,標(biāo)識(shí)這是一個(gè)賦值語句,一般省略這個(gè)參數(shù);VarName參數(shù),表示變量名或某控件的屬性名,在本實(shí)例中VarName分別表示整型變量i和j,字符串變量Str,布爾變量Bool以及窗體的BackColor屬性;Expression參數(shù),表示給變量或?qū)傩悦x值的數(shù)值,該參數(shù)可以是一個(gè)數(shù)值、表達(dá)式,或是一個(gè)賦值語句。
注意:賦值語句中的 VarName和 Expression的數(shù)據(jù)類型要相容,否則編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤。
實(shí)現(xiàn)代碼
Private Sub Form_Click() 'Form的Click事件 Dim i,j As Integer '定義兩個(gè)整型變量 Dim Str As String '定義一個(gè)字符串變量 Dim Bool As Boolean '定義一個(gè)布爾變量 Form1.BackColor = vbWhite '給窗體的背景色賦值 i = 4 '給整型i變量賦值 j = i + 5 '給整型j變量賦值 Str = "Good" '給字符串變量賦值 Print "i=" & I '把變量及值輸出到窗體上 Print "j=" & j '把變量及值輸出到窗體上 Print "Str=" & Str '把變量及值輸出到窗體上 Str = Str + " afternoon" '再次給字符串變量賦值 Print "Str=" & Str '把變量及值輸出到窗體上 Bool = i = 4 '給布爾變量賦值 Print "Bool=" & Bool '把變量及值輸出到窗體上 End Sub
單擊工具欄中的保存按鈕保存工程,然后單擊工具欄中的啟動(dòng)按鈕
運(yùn)行工程,程序的運(yùn)行結(jié)果如圖3.1所示。

圖3.1 程序運(yùn)行界面圖
然后單擊工具欄中的結(jié)束按鈕,或者單擊運(yùn)行窗口的關(guān)閉按鈕
,結(jié)束程序的運(yùn)行。
源程序解讀
(1)在Form_ Click()事件中,首先定義了兩個(gè)整型變量i,j,一個(gè)字符串變量Str,一個(gè)布爾變量Bool。
(2)其次,使用賦值語句給窗體的BackColor屬性賦值為VBWhite,使得在單擊窗體時(shí)窗體的背景色變?yōu)榘咨?/p>
(3)第三,分別使用賦值語句給變量賦值。首先給變量i賦值為4,然后把i+1賦值給變量j,接著使用Print方法把變量i和j在窗體上顯示出來。
(4)第四,給變量Str賦值為“Good”,并運(yùn)用Print方法把Str變量在窗體上顯示出來。然后再次給變量Str賦值為Str+“afternoon”,并把新的賦值在窗體上顯示出來。這個(gè)主要是測試字符變量與自身的連接。
(5)最后,給變量Bool賦值為i=4,并把變量的值在窗體上顯示出來。
說明:前面說到賦值語句的左右兩端的數(shù)據(jù)類型要相容,一般不把數(shù)值賦值給字符串型的變量,但是當(dāng)把數(shù)值賦值給字符串型的變量時(shí),也不會(huì)出錯(cuò),只是把數(shù)值作為字符串處理了,例如本實(shí)例中如果出現(xiàn)“Str=i”這個(gè)語句,則在窗體上會(huì)顯示“Str=4”這個(gè)語句。
3.2 運(yùn)用Print方法顯示圖片
在上一節(jié)中介紹了賦值語句的運(yùn)用,其中要重點(diǎn)注意賦值語句的賦值方法和類型的相容性。另外,在上節(jié)的實(shí)例中還用到了Print方法,本節(jié)就詳細(xì)介紹Print方法的應(yīng)用,即顯示圖片和文字。
技術(shù)要點(diǎn)
本實(shí)例中主要用到的技術(shù)是Print方法和圖片框控件Picture的Click事件。主要功能和用法如下:
● Print方法,主要用于在窗體、圖片框、立即窗口等對象上顯示字符串。
●圖片框Picture控件的Click事件,是單擊圖片框控件時(shí)觸發(fā)的事件。
Print方法的具體使用語法為:
[Object.]Print [OutPutList]
其中,Object參數(shù)表示窗體、立即窗口、圖片框等對象,是可選參數(shù),如果省略,表示在當(dāng)前窗體上輸出;OutPutList參數(shù),表示輸出列表,可以是一個(gè)表達(dá)式或一系列表達(dá)式,當(dāng)為多個(gè)表達(dá)式時(shí),各表達(dá)式之間使用逗號(hào)“,”或分號(hào)“;”隔開。
說明:Print方法除了顯示功能外,還有計(jì)算功能,例如:當(dāng)執(zhí)行Print 4*5時(shí),會(huì)在當(dāng)前窗體顯示出20。
實(shí)現(xiàn)代碼
Private Sub Form_Click() FontSize = 18 '設(shè)置顯示字體大小 ForeColor = vbRed '設(shè)置顯示字體顏色 Print "請觀看圖片!" '在窗體中顯示字符串 Print Now '在窗體上顯示系統(tǒng)當(dāng)前時(shí)間 End Sub Private Sub Picture1_Click() Picture1.FontSize = 16 '設(shè)置顯示字體大小 Picture1.ForeColor = vbRed '設(shè)置顯示字體顏色 Picture1.Print "可愛的小兔子!" '在圖片框中顯示字符串 End Sub
按Ctrl+S組合鍵保存工程,然后按F5鍵運(yùn)行工程。單擊當(dāng)前窗體時(shí),程序的運(yùn)行結(jié)果如圖3.2所示。當(dāng)單擊圖片框控件時(shí),程序的運(yùn)行結(jié)果如圖3.3所示。當(dāng)單擊當(dāng)前窗體和圖片框控件時(shí),程序的運(yùn)行結(jié)果如圖3.4所示。

圖3.2 單擊當(dāng)前窗體的運(yùn)行界面圖

圖3.3 單擊圖片框的運(yùn)行界面圖

圖3.4 單擊當(dāng)前窗體和圖片框的運(yùn)行界面圖
源程序解讀
(1)在Form_ Click()事件中,首先由FontSize屬性設(shè)置顯示字體的大小。由ForeColor屬性設(shè)置顯示字體的顏色。然后運(yùn)用Print方法在當(dāng)前窗體上顯示字符串和系統(tǒng)當(dāng)前的時(shí)間。
(2)在Picture1_ Click()事件中,首先由“Picture1”圖片框的FontSize屬性設(shè)置顯示字體的大小。由“Picture1”圖片框的ForeColor屬性設(shè)置顯示字體的顏色。然后運(yùn)用“Picture1”圖片框的Print方法在圖片框上顯示字符串。
3.3 注釋語句和End語句
在上一節(jié)中介紹了Print方法,讀者從中理解了Print方法的基本運(yùn)用方法。另外,在上面的所有實(shí)例中都用到了注釋語句和End語句,但是對于這兩種語句的用法沒有詳細(xì)介紹,本節(jié)就來介紹這兩種語句的基本用法。
技術(shù)要點(diǎn)
本實(shí)例運(yùn)用的主要技術(shù)是注釋語句和End語句,主要功能和用法如下:
●注釋語句,主要用來注釋程序中的代碼,增加程序的可理解性。
● End語句,主要用來結(jié)束一個(gè)過程或模塊。
注釋語句的具體語法如下:
Rem|'注釋內(nèi)容
常用的注釋語句使用標(biāo)識(shí)符“'”作為注釋語句的開始,當(dāng)使用標(biāo)識(shí)符Rem作為注釋語句的開始時(shí),其與注釋內(nèi)容之間應(yīng)該加一個(gè)空格隔開,注釋語句可以單獨(dú)作為一行放置在代碼的上方,也可以放置在代碼行的后面。一般對于整個(gè)過程或函數(shù)進(jìn)行說明時(shí),注釋語句放置在代碼模塊的上方;對于某行代碼進(jìn)行說明時(shí),一般把注釋語句放在本行的后面。
End語句的具體語法如下:
End[Object]
其中,Object就是要結(jié)束的對象,可以是一個(gè)過程Sub,一個(gè)函數(shù)Function,一個(gè)語句If、Select或With。當(dāng)參數(shù)Object省略時(shí),就是結(jié)束當(dāng)前過程。
實(shí)現(xiàn)代碼
Private Sub Form_Load() Dim PassW As String '定義字符串變量 PassW = "123456" '給變量賦值 TxtName.Text = "管理員" '給用戶名的文本框賦值 TxtPassWord.Text = InputBox("請輸入密碼") '輸入密碼 If TxtPassWord.Text = PassW Then MsgBox "登錄成功!" '輸出登錄成功的窗口 Else MsgBox "登錄失敗!" '輸出登錄失敗的窗口 End '結(jié)束過程的執(zhí)行 End If End Sub
按Ctrl+S組合鍵保存工程,然后,按F5鍵,運(yùn)行工程。單擊啟動(dòng)按鈕后,程序運(yùn)行結(jié)果如圖3.5所示。當(dāng)輸入錯(cuò)誤密碼并單擊“確定”按鈕時(shí),程序運(yùn)行結(jié)果如圖3.6所示。當(dāng)輸入正確密碼并單擊“確定”按鈕時(shí),程序運(yùn)行結(jié)果如圖3.7和圖3.8所示。

圖3.5 輸入密碼界面圖

圖3.6 登錄失敗界面圖

圖3.7 登錄成功界面圖

圖3.8 登錄成功后的界面圖
源程序解讀
(1)在Form_ Load()事件中,首先定義了一個(gè)字符型變量PassW。然后給PassW賦值,并且給文本框控件TxtName賦值為“管理員”。
(2)接下來由InputBox方法接受輸入的密碼值并賦值給文本框TxtPassWord。
(3)然后運(yùn)用條件語句If判斷輸入的密碼值和PassW值的一致性。如果相同,使用MsgBox顯示登錄成功的窗口;否則,顯示登錄失敗的窗口,并由End語句強(qiáng)制結(jié)束代碼執(zhí)行。
3.4 If條件語句
前面介紹了順序結(jié)構(gòu)的幾種語句,從本節(jié)開始要介紹選擇結(jié)構(gòu)中的語句,選擇結(jié)構(gòu),顧名思義,是根據(jù)不同的結(jié)構(gòu)做出不同的選擇,從而執(zhí)行不同的操作。本節(jié)主要介紹選擇結(jié)構(gòu)中的If條件語句的應(yīng)用實(shí)例,即顯示學(xué)生的成績。
技術(shù)要點(diǎn)
本實(shí)例中主要運(yùn)用的技術(shù)是If語句。If語句就是在選擇結(jié)構(gòu)中根據(jù)某種條件做出選擇。If語句分為單行和多行兩種情況,對于單行情況的具體語法為:
If Condition Then 語句1[Else語句2]
其中,參數(shù)Condition為選擇的判斷條件,可以是表達(dá)式或?qū)ο笮停\(yùn)行結(jié)果都是布爾類型True或False;參數(shù)“語句1”表示Condition運(yùn)行結(jié)果為True是執(zhí)行的操作。“Else語句2”是可選項(xiàng),是Condition運(yùn)行結(jié)果為False時(shí)執(zhí)行的操作,一般情況可以省略。
多行情況的具體語法有以下三種:
If Condition Then 語句體 End If If Condition Then 語句體1 Else 語句體2 End If If Condition1 Then 語句體1 Else If Condition2 Then 語句體2 [Else If Condition3 Then 語句體3] ...... [Else 語句體n] End If
第一種情況,只有一種判斷標(biāo)準(zhǔn),即一個(gè)條件,當(dāng)滿足這個(gè)條件時(shí),就執(zhí)行語句體,否則,退出If語句,執(zhí)行下面的語句;第二種情況,雖然看似有一個(gè)條件,實(shí)際有兩個(gè)判斷條件,即滿足和不滿足給定的條件,當(dāng)滿足給定條件時(shí),執(zhí)行語句體1,否則執(zhí)行語句體2,然后退出If語句;第三種情況,比較復(fù)雜,有兩個(gè)或以上的條件,滿足哪個(gè)條件,就執(zhí)行對應(yīng)的語句體。
實(shí)現(xiàn)代碼
Private Sub Form_Load() Dim x As Integer '定義整型變量 x = InputBox("請輸入成績") '輸入學(xué)習(xí)成績并賦值給變量 If x > = 90 Then '學(xué)習(xí)為優(yōu)成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)閮?yōu)" '顯示學(xué)習(xí)成績標(biāo)準(zhǔn) ElseIf x > = 80 Then '學(xué)習(xí)為良成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)榱迹? '顯示學(xué)習(xí)成績標(biāo)準(zhǔn) ElseIf x > = 70 Then '學(xué)習(xí)為中成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)橹校? 顯示學(xué)習(xí)成績標(biāo)準(zhǔn) ElseIf x > = 60 Then '學(xué)習(xí)為及格成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)榧案瘢? '顯示學(xué)習(xí)成績標(biāo)準(zhǔn) Else '學(xué)習(xí)為不及格成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)椴患案瘢? '顯示學(xué)習(xí)成績標(biāo)準(zhǔn) End If LabShow.Caption = "學(xué)習(xí)成績=" & x '顯示成績 End Sub
按Ctrl+S組合鍵保存工程,然后按F5鍵運(yùn)行工程。單擊啟動(dòng)按鈕后,程序運(yùn)行結(jié)果如圖3.9所示。輸入數(shù)據(jù)并單擊“確定”按鈕時(shí),程序運(yùn)行結(jié)果如圖3.10所示。

圖3.9 輸入成績界面圖

圖3.10 顯示成績及標(biāo)準(zhǔn)的界面圖
源程序解讀
(1)在Form_ Load()事件中,首先定義了一個(gè)整型變量x,用來存儲(chǔ)輸入的成績。然后由InPutBox方法輸入成績并賦值給變量x。
(2)接下來使用If語句,根據(jù)判斷標(biāo)準(zhǔn)判斷輸入的成績滿足哪種標(biāo)準(zhǔn),并把標(biāo)準(zhǔn)由“TxtStand”文本框顯示出來。最后,由“LabShow”標(biāo)簽顯示輸入的成績。
3.5 Select Case語句
在上一節(jié)介紹了選擇結(jié)構(gòu)的If語句,If語句有時(shí)使用起來很方便,但是當(dāng)條件有兩個(gè)以上時(shí),使用起來就比較煩瑣,這時(shí)就需要用到本節(jié)要介紹的選擇語句——Select Case語句。
技術(shù)要點(diǎn)
本節(jié)實(shí)例中主要使用的技術(shù)是Select Case語句。Select Case語句主要適用于一個(gè)表達(dá)式可能有很多種結(jié)果產(chǎn)生的情況。具體語法如下:
Select Case Expression Case表達(dá)式結(jié)果表1 語句體1 [Case表達(dá)式結(jié)果表2 語句體2] ...... [Case Else 語句體n] End Select
其中,參數(shù)Expression,表示用于判斷的表達(dá)式,可以是數(shù)值表達(dá)式或字符串表達(dá)式;“表達(dá)式結(jié)果表1”是表達(dá)式的一種結(jié)果,如果表達(dá)式的結(jié)果屬于表達(dá)式結(jié)果表1,就會(huì)執(zhí)行語句體1;否則繼續(xù)與下面的表達(dá)式結(jié)果表比較,如果不屬于任何表達(dá)式結(jié)果表,就執(zhí)行語句體n。
實(shí)現(xiàn)代碼
Private Sub Form_Load() Dim x As Integer '定義整型變量 x = InputBox("請輸入成績") '輸入學(xué)習(xí)成績并賦值給變量 Select Case x Case Is > = 90 '學(xué)習(xí)為優(yōu)成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)閮?yōu)" '顯示學(xué)習(xí)成績標(biāo)準(zhǔn) Case Is > = 80 '學(xué)習(xí)為良成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)榱迹? '顯示學(xué)習(xí)成績標(biāo)準(zhǔn) Case Is > = 70 '學(xué)習(xí)為中成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)橹校? '顯示學(xué)習(xí)成績標(biāo)準(zhǔn) Case Is > = 60 '學(xué)習(xí)為及格成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)榧案瘢? '顯示學(xué)習(xí)成績標(biāo)準(zhǔn) Case Is < 60 '學(xué)習(xí)為不及格成績標(biāo)準(zhǔn) TxtStand.Text = "學(xué)習(xí)成績?yōu)椴患案瘢? '顯示學(xué)習(xí)成績標(biāo)準(zhǔn) End Select LabShow.Caption = "學(xué)習(xí)成績=" & x '顯示成績 End Sub
按Ctrl+S組合鍵保存工程,然后按F5鍵運(yùn)行工程。單擊啟動(dòng)按鈕后,程序運(yùn)行結(jié)果如圖3.11所示。輸入數(shù)據(jù),并單擊“確定”按鈕時(shí),程序運(yùn)行結(jié)果如圖3.12所示。

圖3.11 輸入成績界面圖

圖3.12 顯示成績及標(biāo)準(zhǔn)的界面圖
源程序解讀
(1)在Form_ Load()事件中,首先定義了一個(gè)整型變量x,用來存儲(chǔ)輸入的成績。然后由InPutBox方法輸入成績并賦值給變量x。
(2)接下來使用Select Case語句,根據(jù)x的數(shù)值執(zhí)行成績標(biāo)準(zhǔn)的輸出操作,在每個(gè)表達(dá)式結(jié)果表中運(yùn)用Is關(guān)鍵字把x的值與后面的值進(jìn)行比較,如果滿足條件就執(zhí)行相應(yīng)的語句體。
說明:使用關(guān)鍵字Is時(shí),可以配合關(guān)系運(yùn)算符(除Like和Is外)指定數(shù)值范圍。
3.6 For循環(huán)語句
在上一節(jié)中分別介紹了順序結(jié)構(gòu)中的語句和選擇結(jié)構(gòu)中語句的運(yùn)用實(shí)例。從本節(jié)開始介紹循環(huán)結(jié)構(gòu)的相關(guān)語句,循環(huán)結(jié)構(gòu)指的是在執(zhí)行語句時(shí),根據(jù)循環(huán)變量,要對其重復(fù)執(zhí)行多次。循環(huán)結(jié)構(gòu)中包括三種語句:For循環(huán)語句,While循環(huán)語句和Do循環(huán)語句。本節(jié)介紹For循環(huán)語句的應(yīng)用實(shí)例,即計(jì)算矩陣乘法。
技術(shù)要點(diǎn)
本實(shí)例中使用的主要技術(shù)是For循環(huán)語句。For循環(huán)語句屬于計(jì)數(shù)型循環(huán),按照循環(huán)變量指明的循環(huán)次數(shù),循環(huán)執(zhí)行循環(huán)體,具體語法如下:
For 循環(huán)變量=Start To End [Step step] [循環(huán)體] [Exit For] [循環(huán)體] Next 循環(huán)變量
其中各參數(shù)含義表示如下:
●參數(shù)“循環(huán)變量”,表示控制和統(tǒng)計(jì)循環(huán)次數(shù)的變量,該變量的數(shù)據(jù)類型應(yīng)該是數(shù)值型。
● Start表示循環(huán)變量的初值,數(shù)據(jù)類型為數(shù)值型。
● End表示循環(huán)變量的終值,數(shù)據(jù)類型也為數(shù)值型。
●參數(shù)step表示步長,是可選參數(shù),省略的情況下,默認(rèn)為1,當(dāng)循環(huán)變量的變化差值大于1時(shí),要參數(shù)step進(jìn)行設(shè)置,例如循環(huán)變量的差值是2,那么step=2,當(dāng)Start的值小于或等于End的值時(shí),參數(shù)step的值為正,當(dāng)Start的值大于End的值時(shí),參數(shù)step的值為負(fù);參數(shù)“循環(huán)體”,表示滿足循環(huán)變量時(shí)執(zhí)行操作。
●參數(shù)“Exit For”,當(dāng)有某種特殊情況需要退出For循環(huán)時(shí),使用這個(gè)參數(shù),這時(shí),后面的循環(huán)體就不再執(zhí)行。
●參數(shù)“Next循環(huán)變量”,用于結(jié)束一次For循環(huán),然后根據(jù)Start和End值的大小決定是否進(jìn)行下一次循環(huán)。
另外,F(xiàn)or循環(huán)還有另外一種語法表示方法,具體語法如下:
For Each element In Group [循環(huán)體] [Exit For] [循環(huán)體] Next [element]
其中,參數(shù)element表示遍歷集合中所有元素的變量,它的數(shù)據(jù)類型根據(jù)集合對象的不同而不同,如果是一個(gè)集合,那么element的數(shù)據(jù)類型可以是可變型或者任何對象型,如果是數(shù)組,那么element的數(shù)據(jù)類型只能是可變型;參數(shù)Group表示一個(gè)集合或者數(shù)組。參數(shù)“Next[element]”表示遍歷集合中的下一個(gè)元素。
實(shí)現(xiàn)代碼
Dim ArrR(2,3)As Integer '定義結(jié)果矩陣 Private Sub Form_Load() Dim i,j,k As Integer '定義循環(huán)變量 ArrM(0,0)= 2 '給M矩陣的第1個(gè)元素賦值 ArrM(0,1)= 1 '給M矩陣的第2個(gè)元素賦值 ArrM(0,2)= 0 '給M矩陣的第3個(gè)元素賦值 ArrM(0,3)= 5 '給M矩陣的第4個(gè)元素賦值 ArrM(1,0)= 0 '給M矩陣的第5個(gè)元素賦值 ArrM(1,1)= -1 '給M矩陣的第6個(gè)元素賦值 ArrM(1,2)= 2 '給M矩陣的第7個(gè)元素賦值 ArrM(1,3)= 0 '給M矩陣的第8個(gè)元素賦值 ArrM(2,0)= 2 '給M矩陣的第9個(gè)元素賦值 ArrM(2,1)= 0 '給M矩陣的第10個(gè)元素賦值 ArrM(2,2)= 0 '給M矩陣的第11個(gè)元素賦值 ArrM(2,3)= 1 '給M矩陣的第12個(gè)元素賦值 ArrN(0,0)= 0 '給N矩陣的第1個(gè)元素賦值 ArrN(0,1)= 2 '給N矩陣的第2個(gè)元素賦值 ArrN(0,2)= 2 '給N矩陣的第3個(gè)元素賦值 ArrN(0,3)= 1 '給N矩陣的第4個(gè)元素賦值 ArrN(1,0)= 1 '給N矩陣的第5個(gè)元素賦值 ArrN(1,1)= 3 '給N矩陣的第6個(gè)元素賦值 ArrN(1,2)= 3 '給N矩陣的第7個(gè)元素賦值 ArrN(1,3)= 4 '給N矩陣的第8個(gè)元素賦值 ArrN(2,0)= -2 '給N矩陣的第9個(gè)元素賦值 ArrN(2,1)= 4 '給N矩陣的第10個(gè)元素賦值 ArrN(2,2)= -3 '給N矩陣的第11個(gè)元素賦值 ArrN(2,3)= 2 '給N矩陣的第12個(gè)元素賦值 ArrN(3,0)= 1 '給N矩陣的第13個(gè)元素賦值 ArrN(3,1)= 0 '給N矩陣的第14個(gè)元素賦值 ArrN(3,2)= -5 '給N矩陣的第15個(gè)元素賦值 ArrN(3,3)= 7 '給N矩陣的第16個(gè)元素賦值 For i = 0 To 2 For j = 0 To 3 ArrR(i,j)= 0 '初始化結(jié)果矩陣 For k = 0 To 3 ArrR(i,j)= ArrR(i,j)+ ArrM(i,k)*ArrN(k,j) '計(jì)算矩陣乘積 Next k Next j Next i For i = 0 To 3 TxtR1(i)= ArrR(0,i) '顯示結(jié)果矩陣的第一行 TxtR2(i)= ArrR(1,i) '顯示結(jié)果矩陣的第二行 TxtR3(i)= ArrR(2,i) '顯示結(jié)果矩陣的第三行 Next i End Sub
按Ctrl+S組合鍵保存工程,然后按F5鍵運(yùn)行工程。單擊啟動(dòng)按鈕后,程序運(yùn)行結(jié)果如圖3.13所示。

圖3.13 程序運(yùn)行結(jié)果圖
源程序解讀
(1)代碼首先定義了三個(gè)二維數(shù)組:ArrM(2,3),表示一個(gè)被乘數(shù)矩陣。ArrN(3,3),表示一個(gè)乘數(shù)矩陣。ArrR(2,3)表示兩個(gè)矩陣乘積的結(jié)果矩陣。
(2)在Form_ Load()事件中,首先定義三個(gè)整型循環(huán)變量。然后分別給被乘數(shù)矩陣和乘數(shù)矩陣賦初值。
(3)接著運(yùn)用三重For循環(huán)執(zhí)行兩個(gè)矩陣的乘積。三重循環(huán)分別由循環(huán)變量i,j,k控制,最終計(jì)算結(jié)果存儲(chǔ)在數(shù)組ArrR()中。并且由“TxtR”文本框數(shù)組顯示出來。
3.7 While循環(huán)語句
在上一節(jié)中介紹了For循環(huán)語句的應(yīng)用實(shí)例。本節(jié)接著介紹另外一種循環(huán)語句——While循環(huán)語句的應(yīng)用實(shí)例,即有順序的顯示乘法表,希望讀者通過此例掌握While循環(huán)語句的運(yùn)用方法。
技術(shù)要點(diǎn)
本節(jié)使用的主要技術(shù)是While語句。While語句也用于對某個(gè)條件的判斷,如果滿足條件,就執(zhí)行循環(huán)體;條件不成立就結(jié)束循環(huán),不再執(zhí)行循環(huán)體,具體語法如下:
While Condition [循環(huán)體] Wend
其中,參數(shù)Condition表示控制循環(huán)執(zhí)行的條件,一般為數(shù)值表達(dá)式或字符串表達(dá)式,結(jié)果為True或False,如果Condition為空,則作為False處理;參數(shù)“循環(huán)體”為一條或多條語句,只有當(dāng)Condition為真時(shí)才執(zhí)行。
While循環(huán)的執(zhí)行過程是:首先判斷條件是否成立,如果成立,則執(zhí)行循環(huán)體,執(zhí)行完再判斷條件是否成立,重復(fù)上述過程;否則,如果不成立,則結(jié)束循環(huán),執(zhí)行循環(huán)下面的語句。
說明:While循環(huán)允許嵌套,即While循環(huán)體中允許再出現(xiàn)While循環(huán),本實(shí)例就使用了While循環(huán)嵌套。
實(shí)現(xiàn)代碼
Private Sub Form_Click() FontSize = 14 '定義顯示數(shù)字的大小 ForeColor = vbBlue '定義顯示數(shù)字的顏色 Print Tab(40);"乘法表" '在窗體上顯示標(biāo)題 Print Tab(37);" - - - - - - - - - -" '在窗體上顯示下畫線 While i < = 9 '限定外循環(huán)條件 j = 1 '初始化內(nèi)循環(huán)變量 While j < = I '限定內(nèi)循環(huán)條件 Print Tab((j-1)*9+1);i & "*" & j& " =" & i*j; '在窗體上顯示乘法表 j = j + 1 '內(nèi)循環(huán)變量增1 Wend Print '顯示到下一行 i = i + 1 '外循環(huán)變量增1 Wend End Sub
按Ctrl+S組合鍵保存工程,然后按F5鍵運(yùn)行工程。單擊“啟動(dòng)”按鈕后,程序運(yùn)行結(jié)果如圖3.14所示。

圖3.14 程序運(yùn)行結(jié)果圖
源程序解讀
(1)在Form_ Click()事件中,首先使用FontSize和ForeColor兩個(gè)屬性分別設(shè)置顯示數(shù)字的大小和顏色。然后運(yùn)用Print方法在窗體上顯示字符和下畫線。
(2)接下來使用While循環(huán)語句在窗體上顯示乘法表。
(3)首先,使用循環(huán)變量i控制外循環(huán),循環(huán)條件為i< =9,即要循環(huán)執(zhí)行循環(huán)體9次。
(4)其次,給內(nèi)循環(huán)變量j賦初值1,并再次使用While循環(huán)語句,循環(huán)條件為j< =i,說明內(nèi)循環(huán)受控于外循環(huán)。如果條件成立就執(zhí)行Print方法,顯示各乘法算式;否則,執(zhí)行Print方法,轉(zhuǎn)換到下一行。
(5)最后,繼續(xù)判斷外循環(huán)條件,依次重復(fù)下去。
說明:While循環(huán)語句與For循環(huán)的不同之處在于:For循環(huán)的循環(huán)次數(shù)已知,而While循環(huán)的次數(shù)提前未知,只能通過判斷條件決定循環(huán)是否結(jié)束。
3.8 Do循環(huán)語句
在前面兩節(jié)中分別介紹了For循環(huán)語句和While循環(huán)語句,這兩種循環(huán)語句各有利弊,要根據(jù)具體情況選擇合適的語句,本節(jié)接著介紹第三種循環(huán)語句——Do循環(huán)語句的應(yīng)用實(shí)例,即計(jì)算從1到n的n個(gè)整數(shù)的和。
技術(shù)要點(diǎn)
在本實(shí)例中用到的主要技術(shù)是Do循環(huán)語句。Do循環(huán)語句也是根據(jù)某個(gè)判斷條件是否成立來決定循環(huán)體是否被執(zhí)行,Do循環(huán)有兩種語法格式,第一種語法格式:
Do [{While|Until}Condition] [循環(huán)體] [Exit Do] [循環(huán)體] Loop
第二種語法格式:
Do [循環(huán)體] [Exit Do] [循環(huán)體] Loop[{While|Until}Condition]
其中各參數(shù)的含義如下:
●參數(shù)Condition表示控制循環(huán)進(jìn)行的條件,可以為數(shù)值型表達(dá)式或字符型表達(dá)式。
●參數(shù)“循環(huán)體”,是一條或多條語句,這個(gè)語句體,在第一種格式中,如果條件不成立就不再執(zhí)行,而在第二種格式中,當(dāng)條件不成時(shí)也要執(zhí)行一次,因此,第二種格式至少執(zhí)行一次循環(huán)體,而第一種格式可能不執(zhí)行循環(huán)體。
●參數(shù)Exit Do,表示因?yàn)槟硞€(gè)條件要中途跳出Do循環(huán),后面的循環(huán)體就不被執(zhí)行,而執(zhí)行Do循環(huán)外的下面語句。Exit Do語句可以有條件限制,也可以直接使用,一般會(huì)有條件限制。
實(shí)現(xiàn)代碼
Private Sub Form_Click() Dim s,i,n As Integer '定義整型變量 n = InputBox("請輸入一個(gè)整數(shù)") '輸入一個(gè)整數(shù)并賦值給變量n i = 1 '給變量i賦初值 s = 0 '給變量s賦初值 Do s = s + i '累加i i = i + 1 'i增1 Loop Until (i > = n) '判斷條件 Print "1到n個(gè)整數(shù)的和為:" & s '顯示累加和 i = 1 '給變量i賦初值 s = 0 '給變量s賦初值 Do While(i < = n) '判斷條件 s = s + i '累加i i = i + 1 'i增1 Loop Print "1到n個(gè)整數(shù)的和為:" & s '顯示累加和 End Sub
單擊工具欄中的保存按鈕,保存工程,然后單擊工具欄中的啟動(dòng)按鈕
,運(yùn)行工程,程序運(yùn)行結(jié)果如圖3.15和圖3.17所示。當(dāng)在文本框中輸入數(shù)據(jù)10,并單擊“確定”按鈕時(shí),程序運(yùn)行結(jié)果如圖3.16所示。當(dāng)在文本框中輸入數(shù)據(jù)0,并單擊“確定”按鈕時(shí),程序運(yùn)行結(jié)果如圖3.18所示。

圖3.15 輸入整數(shù)界面圖

圖3.16 運(yùn)行結(jié)果界面圖

圖3.17 輸入整數(shù)界面圖

圖3.18 運(yùn)行結(jié)果界面圖
然后單擊工具欄中的結(jié)束按鈕,或者單擊運(yùn)行窗口的關(guān)閉按鈕
,結(jié)束程序的運(yùn)行。
源程序解讀
(1)在Form_ Click()事件中,首先定義三個(gè)整型變量i,s,n,分別表示循環(huán)變量、累加和變量、輸入整數(shù)變量。然后分別給三個(gè)變量賦初值為1、0、n的值是由InputBox方法得到的。
(2)接下來,分別使用Do循環(huán)的兩種語法格式進(jìn)行1到n的整數(shù)累加操作。最后把累加和由Print方法顯示在當(dāng)前窗體上。
注意:在使用第一種語法格式進(jìn)行整數(shù)累加操作之前要再次給變量i和s賦初值,否則當(dāng)輸入整數(shù)0時(shí),會(huì)出現(xiàn)錯(cuò)誤。
3.9 Write語句寫入文件
前面介紹了VB三種結(jié)構(gòu)中的一些語句,這些語句都是編程的基礎(chǔ),希望讀者能夠掌握這些語句的相關(guān)語法和語句之間的不同點(diǎn)。本節(jié)在前面學(xué)習(xí)的基礎(chǔ)上,介紹另外一種語句——Write語句的運(yùn)用實(shí)例,即在文本框中寫入文件。
技術(shù)要點(diǎn)
在本實(shí)例中主要用到了Write語句、Open語句和Close語句,主要功能和用法如下:
● Write語句,主要用于將數(shù)據(jù)寫入文件。
● Open語句,主要用于打開一個(gè)已知的文件。
● Close語句,主要用于關(guān)閉一個(gè)打開的文件。
Write語句的具體語法為:
Write#FileNumber [OutputList]
其中,參數(shù)FileNumber表示任何有效的文件號(hào),在本例中文件號(hào)為1,也可以為其它的,但是,這個(gè)文件號(hào)要與打開文件時(shí)賦予文件的文件號(hào)相同,否則編譯時(shí)會(huì)出錯(cuò);參數(shù)OutputList,表示要寫入的數(shù)據(jù),這些數(shù)據(jù)可以是數(shù)值表達(dá)式,或字符串表達(dá)式,當(dāng)要寫入的是一首詩時(shí),如本例一樣,要在每句詩之間使用換行符vbCrLf隔開。
Open語句的具體語法為:
Open PathName For Mode[Access access][Lock]As[#]FileNumber [Len=reclength]
其中各參數(shù)的含義如下:
●參數(shù)PathName表示打開文件的路徑,打開一個(gè)已知文件時(shí),必須指明打開路徑,否則無法找到文件。
●參數(shù)Mode表示打開文件的方式,打開文件有很多種方式:Append,Binary,Input, Outut或Random方式,如果沒有指明,默認(rèn)為Random方式。本實(shí)例中,采用的是Output方式。
●參數(shù)access表示打開文件可以進(jìn)行的操作,有讀操作,寫操作或讀寫操作。
●參數(shù)Lock表示其他進(jìn)程可以對打開文件進(jìn)行的操作,有共享、鎖定讀操作,鎖定寫操作或鎖定讀寫操作,這個(gè)參數(shù)可選,但一般不常用。
●參數(shù)FileNumber表示一個(gè)有效的文件號(hào),有效的文件號(hào)范圍在1~511之間。
●參數(shù)reclength表示一個(gè)小于等于32767的數(shù),當(dāng)以Random方式打開文件時(shí),使用該參數(shù)記錄文件長度。
Close語句的具體語法如下:
Close[FileNumberList]
其中,參數(shù)FileNumberList表示關(guān)閉文件的文件號(hào)列表;當(dāng)關(guān)閉當(dāng)前一個(gè)文件時(shí)這個(gè)參數(shù)可以省略。
實(shí)現(xiàn)代碼
Private Sub Form_Click() Dim FileStr As String '定義字符串變量 Open App.Path & "\FileMe.txt " For Output As#1 '打開要寫入文字的文件 '設(shè)置寫入的文字 FileStr = "春夜即事" & vbCrLf & "霞綃云幄任鋪陳,隔巷蟆更聽未真." & vbCrLf &"枕上輕寒窗外雨,眼 前春色夢中人." & vbCrLf & "盈盈燭淚因誰泣,點(diǎn)點(diǎn)花愁為我嗔." & vbCrLf & "自是小鬟嬌懶慣,擁衾不耐笑 言頻." Write#1,F(xiàn)ileStr '將文字寫入文件 MsgBox "已經(jīng)將信息寫入FileMe.txt文件中!",vbInformation,"信息提示" '提示文字已經(jīng)寫入 TxtFile.Text = FileStr '顯示寫入的文字 Close '關(guān)閉文件 End Sub
單擊工具欄中的保存按鈕,保存工程,然后單擊工具欄中的啟動(dòng)按鈕
,運(yùn)行工程,程序運(yùn)行結(jié)果如圖3.19所示。寫入文件后,程序運(yùn)行結(jié)果如圖3.20和圖3.21所示。

圖3.19 初始狀態(tài)界面圖

圖3.20 寫入文字之后的界面圖

圖3.21 顯示文字的界面圖
然后單擊工具欄中的結(jié)束按鈕,或者單擊運(yùn)行窗口的關(guān)閉按鈕
,結(jié)束程序的運(yùn)行。
源程序解讀
(1)在Form_ Click()事件中,首先定義了一個(gè)字符串變量FileStr,用來存儲(chǔ)寫入文件的數(shù)據(jù)。
(2)接下來,使用Open語句,以O(shè)utput方式打開當(dāng)前文件夾下的文件FlieMe.txt,并賦予文件編號(hào)為1。
(3)然后,給FileStr賦初值,本例中為一首詩。
(4)最后,運(yùn)用Write語句把FileStr中的內(nèi)容寫入文件。寫入后使用MsgBox方法顯示寫入成功的提示框,并使用“TxtFile”文本框顯示寫入的數(shù)據(jù)。
- GitLab Cookbook
- JavaScript修煉之道
- C# 從入門到項(xiàng)目實(shí)踐(超值版)
- 算法大爆炸:面試通關(guān)步步為營
- Unity Virtual Reality Projects
- Mastering OpenCV 4
- Python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)
- C程序設(shè)計(jì)實(shí)踐教程
- Kotlin編程實(shí)戰(zhàn):創(chuàng)建優(yōu)雅、富于表現(xiàn)力和高性能的JVM與Android應(yīng)用程序
- 微服務(wù)從小白到專家:Spring Cloud和Kubernetes實(shí)戰(zhàn)
- Create React App 2 Quick Start Guide
- Node Cookbook(Second Edition)
- 寫給程序員的Python教程
- R語言:邁向大數(shù)據(jù)之路(加強(qiáng)版)
- Learning Splunk Web Framework