選擇結(jié)構(gòu)課件_第1頁
選擇結(jié)構(gòu)課件_第2頁
選擇結(jié)構(gòu)課件_第3頁
選擇結(jié)構(gòu)課件_第4頁
選擇結(jié)構(gòu)課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、教學(xué)目標(biāo)掌握IFTHENElse語句熟悉組合框、列表框、檢查列表框(CheckedListBox)掌握Select Case語句 牛牛文庫文檔分享4.1 If語句4.1.1 IfThen語句 If-Then語句用來當(dāng)條件滿足時(shí)執(zhí)行某些語句,反之則不執(zhí)行。If-Then語句的格式如下: If Then 語句塊 End If If-Then語句亦稱為單分支結(jié)構(gòu)。其中條件表達(dá)式的值為Boolean型,用將條件表達(dá)式括起來表示它在IF語句中是必須具有的一項(xiàng),即IF語句中的條件表達(dá)式不可缺少。 牛牛文庫文檔分享 例如,對(duì)輸入的數(shù)值進(jìn)行判斷。輸入大于25的數(shù)值時(shí),在MessageBox內(nèi)顯示“大于25”。

2、否則將不顯示任何信息。 If intNumber 25 Then MessageBox.Show( 大于25) End If 牛牛文庫文檔分享4.1.2 IfThenElse語句 當(dāng)條件表達(dá)式的值為True時(shí),程序執(zhí)行一些語句,其值為False時(shí),程序執(zhí)行另一些語句,此時(shí)可以使用If-Then-Else語句。If-Then-Else語句的格式如下: If Then Else End If 該語句的作用是當(dāng)條件表達(dá)式的值為True時(shí),程序執(zhí)行語句塊1,當(dāng)條件表達(dá)式的值為False時(shí),程序?qū)?zhí)行語句塊2。 牛牛文庫文檔分享例如對(duì)intSex變量進(jìn)行判斷,為0時(shí)是男性;否則是女性:If intSex

3、=0 ThenMessageBox.Show(“You are a man!”)ElseMessageBox.Show(“You are a woman!”)End If 牛牛文庫文檔分享 創(chuàng)建一新的項(xiàng)目,對(duì)輸入的數(shù)值進(jìn)行判斷。在其中的一個(gè)TextBox中輸入數(shù)值,如果輸入的數(shù)據(jù)為7的整倍數(shù),在另一個(gè)TextBox文本框內(nèi)顯示“是7的倍數(shù)”,反之則顯示“不能被7整除”。在窗體上放置2個(gè)TextBox控件,分別用來接受輸入和顯示結(jié)果,Name屬性分別為TxtInput和TxtResult。再添加一個(gè)按鈕,并為這個(gè)按鈕的Click事件編寫如下代碼: Private Sub BtnGo_Click(

4、ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles BtnGo.Click Dim lngIn As Long lngIn = Convert.ToInt64(TxtInput.Text) If lngIn Mod 7 = 0 Then TxtResult.Text = 是7的倍數(shù) Else TxtResult.Text = 不能被7整除 End IfEnd Sub 程序中使用了顯示的轉(zhuǎn)換Convert.ToInt64,當(dāng)然也可以直接賦值,由Visual Basic作隱式轉(zhuǎn)換。 牛牛文庫文檔分享4.1.3 I

5、fThenElseIf語句 分支超過2個(gè)的情況,此時(shí)可以在IfThenEnd If結(jié)構(gòu)中使用ElseIf 語句,格式如下: If Then ElseIf Then Else 語句塊n+1 End If 該語句的作用是根據(jù)不同的條件表達(dá)式的值確定執(zhí)行哪個(gè)語句塊,Visual Basic測(cè)試條件的順序?yàn)闂l件表達(dá)式1、條件表達(dá)式2、,每當(dāng)遇到某個(gè)條件表達(dá)式值為True時(shí),就執(zhí)行該條件下的語句塊。 牛牛文庫文檔分享例如在下面一段代碼中根據(jù)Caller的值不同而執(zhí)行不同的語句。 If Caller = Joe Then MessageBox.Show( Yes!) ElseIf Caller = Mat

6、t Then MessageBox.Show(Okay, but if you buy.) ElseIf Caller = Jeff Then MessageBox.Show(Im washing my hair tonight.) ElseIf Caller = Robby Then MessageBox.Show( This is a recording.) End If注意: 1.的是不管程序有幾個(gè)分支,在執(zhí)行了一個(gè)分支后,其余 分支不再執(zhí)行。2.ElseIf不要寫成Else If。 牛牛文庫文檔分享4.1.4嵌套IfThen語句 If語句可以嵌套,既可在If語句當(dāng)中可以包含另外一個(gè)If

7、語句。If語句的嵌套語句格式如下: If Then If Then End If End If例如只有當(dāng)n=3并且x=6時(shí)顯示“n=3 & x=6”。 If n = 3 Then MessageBox.Show(n=3) If x = 6 Then MessageBox.Show(x=6 & n=3) End If End If If語句對(duì)于嵌套的多少是沒有限制的。但是嵌套的層數(shù)越多,代碼執(zhí)行起來就會(huì)越困難,越容易出錯(cuò)。所以,應(yīng)盡量把嵌套層數(shù)減少。 牛牛文庫文檔分享例:在兩個(gè)文本框中任意輸入兩個(gè)數(shù)字,按下Max按鈕后將較大的一個(gè)顯示在第三個(gè)文本框中。創(chuàng)建新的工程起名為Biger,在窗體上放置3

8、個(gè)TextBox控件和一個(gè)按鈕,清除3個(gè)TextBox控件的Text屬性,將3個(gè)TextBox控件的name屬性分別設(shè)置為TxtOp1,TxtOp2,TxtBiger;將TxtBiger的ReadOnly屬性設(shè)置為True;按鈕的name屬性為BtnBiger,Text的name屬性為Max。采用快速添加事件代碼的方法,雙擊按鈕添加代碼如下:Private Sub BtnBiger_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles BtnBiger.Click Dim dblOp1 As Dou

9、ble Dim dblOp2 As Double dblOp1 = TxtOp1.Text dblOp2 = TxtOp2.Text If dblOp1 = dblOp2 Then TxtBiger.Text = dblOp1 Else TxtBiger.Text = dblOp2 End IfEnd Sub 牛牛文庫文檔分享4.1.5 Select Case語句(情況語句)Select Case語句是實(shí)現(xiàn)選擇結(jié)構(gòu)程序設(shè)計(jì)的另一種語句。它的使用有時(shí)比If語句更加簡(jiǎn)單直觀。Select Case語句的格式如下:Select Case 變量名或表達(dá)式 Case 表達(dá)式列表1語句塊1Case 表達(dá)式

10、列表2語句塊2Case Else 語句塊n+1End Select 牛牛文庫文檔分享其中變量名或表達(dá)式可以是所有基本數(shù)據(jù)類型;表達(dá)式列表與“變量名或表達(dá)式”的類型必須相同,可以取下面四種形式:表達(dá)式一組枚舉表達(dá)式(用逗號(hào)分隔)表達(dá)式值的范圍(如:表達(dá)式1 To 表達(dá)式2)Is 關(guān)系運(yùn)算符表達(dá)式例如: Case 1 To 8 表示測(cè)試表達(dá)式的值在1到8之間 Case 1,.3,5,7,Is11 表示測(cè)試表達(dá)式的值為1,3,5,7或大于11該語句的作用是根據(jù)中的結(jié)果與各Case子句中的表達(dá)式的值進(jìn)行比較,以決定執(zhí)行哪一組語句塊。 牛牛文庫文檔分享在Visual Basic .NET中,可以把所有基

11、本數(shù)據(jù)類型運(yùn)用到Select Case語句中。當(dāng)有多個(gè)Case表達(dá)式的值與測(cè)試值匹配時(shí),系統(tǒng)執(zhí)行第一個(gè)與之匹配的語句。采用Select Case語句改寫前面IfThenElseIf的例子,如下所示:Select Case CallerCase “Joe”MessageBox.Show( Yes!)Case “Matt”MessageBox.Show(Okay, but if you buy.)Case “Jeff”MessageBox.Show(Im washing my hair tonight.)Case “Robby”MessageBox.Show( This is a recordin

12、g.)End Select比較兩程序段,顯然,使用Select Case語句使代碼變得更加清晰直觀,不再重復(fù)出現(xiàn)ElseIf和Then 語句。 牛牛文庫文檔分享4.2 END語句 End語句用于結(jié)束一個(gè)程序的運(yùn)行,它可以放在任何事件過程中。End語句格式如下: End 以上在順序結(jié)構(gòu)、選擇結(jié)構(gòu)的代碼中,都用到End與對(duì)應(yīng)結(jié)構(gòu)的關(guān)鍵詞復(fù)合的語句。其實(shí),以后介紹的情況語句、循環(huán)結(jié)構(gòu)、子程序、過程等等的程序代碼中,也必須以End與關(guān)鍵詞復(fù)合語句結(jié)尾。這是Visual Basic代碼編寫時(shí)的規(guī)則,即作為一個(gè)完整的結(jié)構(gòu)(順序、選擇(情況)、循環(huán))、子程序、程序塊,最后一個(gè)語句必須用End的關(guān)鍵詞復(fù)合語句

13、,以示該程序到此結(jié)束。否則,系統(tǒng)將會(huì)提示出錯(cuò)信息。例如End If、End Select、End Sub、End With等等。 牛牛文庫文檔分享4.3 ListBox、CheckedListBox、ComboBox控件 ListBox(列表框)、CheckedListBox(復(fù)選列表框)和ComboBox(組合列表框),向用戶提供選項(xiàng)。它們均可顯示多個(gè)選項(xiàng),而且比多個(gè)單選按鈕或檢查框占據(jù)的空間要少一些。 牛牛文庫文檔分享4.3.1 ListBox控件 ListBox控件用來顯示選項(xiàng)列表,用戶可從中進(jìn)行選擇一項(xiàng)或選擇多項(xiàng)的操作。在窗體創(chuàng)建一個(gè)列表框時(shí),單擊ListBox小圖標(biāo)。鼠標(biāo)箭頭變?yōu)槭?/p>

14、形狀,將鼠標(biāo)移至窗體上適當(dāng)位置,按住鼠標(biāo)左鍵,拖動(dòng)鼠標(biāo)繪制列表框。 右圖為添加了選項(xiàng)的ListBox。 牛牛文庫文檔分享 ListBox的屬性 在設(shè)計(jì)的時(shí)候?yàn)長(zhǎng)istBox添加選項(xiàng),可以使用屬性窗口中的Items屬性(位于Data類別中)。打開ListBox的屬性窗口,單擊Items屬性項(xiàng)右邊的帶有三個(gè)小黑點(diǎn)的按鈕。Visual Studio .NET將打開一個(gè)字符串集合編輯器。將相應(yīng)的選項(xiàng)內(nèi)容輸入到字符串集合編輯器中。.每輸入一個(gè)選項(xiàng)后,按回車鍵換行。全部選項(xiàng)輸入完畢后,單擊OK按鈕結(jié)束,如圖4-3所示的ListBox。如果項(xiàng)總數(shù)超出可以顯示的項(xiàng)數(shù),則自動(dòng)向 ListBox 控件添加滾動(dòng)條。

15、 常用屬性:SelectionMode屬性。SelectedIndex屬性。 SelectedItem屬性獲取或設(shè)置 ListBox 中的當(dāng)前選定項(xiàng)。 SelectedIndices 屬性,獲取一個(gè)集合 。SelectedItems 屬性,對(duì)于多重選擇 ListBox,此屬性返回一個(gè)集合。Sorted屬性,該屬性決定列表框中的項(xiàng)目在程序運(yùn)行期間是否按字母順序排列顯示。 Text屬性,該屬性值是被選中的列表項(xiàng)的內(nèi)容 。 牛牛文庫文檔分享 程序運(yùn)行時(shí)改變ListBox項(xiàng) ListBox的Item屬性本身是一個(gè)集合對(duì)象,可以利用Item的方法在程序運(yùn)行期間給ListBox添加新的項(xiàng)目或刪除某一項(xiàng)。用

16、Add方法在ListBox后添加一項(xiàng): ListBoxName.Item.Add(“新的表項(xiàng)”)要將某一項(xiàng)插入到指定位置,可以使用Insert方法:ListBoxName.Item.Insert(n, “新的表項(xiàng)”)其中n表示要插入的位置。需要?jiǎng)h除一項(xiàng)時(shí),可以使用Remove方法:ListBoxName.Item.RemoveAt(n)ListBoxName.Item.Remove(“要?jiǎng)h除的項(xiàng)”)使用項(xiàng)目的索引值,用RemoveAt 方法;用Remove方法通過刪除項(xiàng)目本身的值來刪除它。還可以使用Clear方法一次將所有項(xiàng)全部刪除。 牛牛文庫文檔分享 右邊是一個(gè)關(guān)于ListBox的完整的例子

17、。在ListBox中選中一項(xiàng),可以通過單擊刪除按鈕將它刪去;也可以在TextBox中輸入新項(xiàng),單擊加入按鈕將此項(xiàng)添加到ListBox中。 3個(gè)按鈕的Name屬性分別為BtnAdd、BtnRemove和BtnExit。ListBox的Name屬性為L(zhǎng)stboxCourse。TextBox的Name屬性為TxtNew。 在程序的設(shè)計(jì)階段,已經(jīng)使用Item的字符串集合編輯器添加了一些項(xiàng)。 牛牛文庫文檔分享下面分別為3個(gè)按鈕添加Click事件處理代碼如下:Private Sub BtnAdd_Click(ByVal sender As System.Object, _ByVal e As System

18、.EventArgs) Handles BtnAdd.Click If TxtNew.Text Then LstboxCourse.Items.Add(TxtNew.Text) End IfEnd SubPrivate Sub BtnRemove_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles BtnRemove.Click If LstboxCourse.SelectedIndex = 0 Then LstboxCourse.Items.RemoveAt(LstboxCourse.Selec

19、tedIndex) End IfEnd SubPrivate Sub BtnExit_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles BtnExit.Click EndEnd Sub程序運(yùn)行結(jié)果如下,刪除了一些項(xiàng),添加了3項(xiàng) 牛牛文庫文檔分享4.3.2 CheckedListBox CheckedListBox(復(fù)選列表框)的使用在本質(zhì)上與ListBox是一樣的,只是選項(xiàng)在列表中顯示的樣式稍有不同,即在每個(gè)選項(xiàng)前有一個(gè)方框,當(dāng)要選該項(xiàng)時(shí),單擊前面的方框即可。 CheckedListBox控件

20、牛牛文庫文檔分享 可以看到,在每一項(xiàng)的前面有一個(gè)方框。方框里面有對(duì)號(hào)的表示已經(jīng)選中的項(xiàng)。另外還有一項(xiàng)有一個(gè)藍(lán)色的條(上圖是馬克思主義哲學(xué)項(xiàng))表示目前突出顯示的項(xiàng)。 需要注意:屬性SelectedItems 和 SelectedIndices 并不確定哪些項(xiàng)已選中,它們確定哪些項(xiàng)為突出顯示的項(xiàng)。如果要確定那些項(xiàng)被選中,則需要對(duì)每一項(xiàng)分別調(diào)用方法GetItemChecked,若調(diào)用結(jié)果為True,表示被選中;反之,則未被選中。調(diào)用時(shí),采用索引號(hào)指定某一項(xiàng)。若有: CheckListBoxName. GetItemChecked(0) CheckListBoxName. GetItemChecked

21、(1) 則由于第一項(xiàng)被選中所以第一個(gè)式子的結(jié)果為True;而第二項(xiàng)未被選中,因此結(jié)果為False。CheeckedListBox控件的添加項(xiàng)、刪除項(xiàng)等的方法與ListBox是一樣的。 牛牛文庫文檔分享4.3.3組合框(ComboBox)的使用 ComboBox (組合框)控件結(jié)合了文本框和列表框二者的特點(diǎn)。ComboBox 控件用于在下拉組合框中顯示數(shù)據(jù)。 默認(rèn)情況下,ComboBox 控件分兩個(gè)部分顯示:頂部是一個(gè)允許用戶鍵入列表項(xiàng)的文本框。第二個(gè)部分是列表框,它顯示用戶可以從中進(jìn)行選擇的項(xiàng)的列表。 與ListBox控件一樣,可以在Items屬性中輸入選項(xiàng)。程序運(yùn)行后可以單擊ComboBox

22、控件的下拉箭頭看到供選擇的項(xiàng)。 默認(rèn)狀態(tài)下的ComboBox控件 程序運(yùn)行時(shí)通過單擊下拉箭頭來選擇需要的項(xiàng) 牛牛文庫文檔分享 可以通過設(shè)置DropDownStyle屬性使得CheckedListBox控件有3種不同的外觀和運(yùn)行方式,3種方式分別是DropDown 、Simple和DropDownList如右圖所示: 其他方面,和ListBox控件的用法基本相同。 ComboBox的3種模式DropDown模式 DropDownList模式 Simple模式 牛牛文庫文檔分享4.3.4 一個(gè)綜合的例子 下面是一個(gè)查看課程的例子。用戶首先通過一個(gè)Combox控件選擇專業(yè),一旦用戶選擇完畢,該專業(yè)的

23、課程將出現(xiàn)在ListBox中。隨后在ListBox中選擇一個(gè)課程,單擊課程詳細(xì)信息按鈕,顯示一個(gè)MessageBox對(duì)話框。對(duì)話框中顯示有任課教師姓名和課時(shí)數(shù)的信息。 創(chuàng)建該程序:新建一個(gè)項(xiàng)目取名為CourseSelect,在窗體上放置一個(gè)ComboBox控件、一個(gè)ListBox控件和一個(gè)按鈕控件。分別設(shè)置他們的屬性 。 牛牛文庫文檔分享在框架中添加代碼如下:Private Sub CmboxSkill_SelectedIndexChanged(ByVal sender As Object, _ByVal e As System.EventArgs) Handles CmboxSkill.Se

24、lectedIndexChanged LstboxCourse.Items.Clear() Select Case CmboxSkill.SelectedIndex Case 0 LstboxCourse.Items.Add(離散數(shù)學(xué)) LstboxCourse.Items.Add(數(shù)據(jù)結(jié)構(gòu)) LstboxCourse.Items.Add(編譯原理) Case 1 LstboxCourse.Items.Add(電力系統(tǒng)) LstboxCourse.Items.Add(高電壓技術(shù)) LstboxCourse.Items.Add(繼電保護(hù)) Case 2 LstboxCourse.Items.Ad

25、d(排隊(duì)論) LstboxCourse.Items.Add(管理信息系統(tǒng)) Case 3 LstboxCourse.Items.Add(會(huì)計(jì)學(xué)) LstboxCourse.Items.Add(國(guó)際金融) End SelectEnd Sub 牛牛文庫文檔分享為Button控件的Click事件編寫如下代碼:Private Sub BtnDetail_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles BtnDetail.Click If LstboxCourse.SelectedIndex = 0 T

26、hen Select Case CmboxSkill.SelectedIndex Case 0 If LstboxCourse.SelectedIndex = 0 Then MessageBox.Show(任課教師:陳明;課時(shí)數(shù):64) ElseIf LstboxCourse.SelectedIndex = 1 Then MessageBox.Show(任課教師:王虎;課時(shí)數(shù):64) Else MessageBox.Show(任課教師:李博;課時(shí)數(shù):72) End If Case 1 If LstboxCourse.SelectedIndex = 0 Then MessageBox.Show(任課教師:李延;課時(shí)數(shù):48) ElseIf LstboxCourse.SelectedIndex = 1 Then MessageBox.Show(任課教師:張訊;課時(shí)數(shù):64) Else MessageBox.Show(任課教師:錢云;課時(shí)數(shù):72) End If Case 2 If LstboxCourse.SelectedIndex = 0 Then MessageBox.Sh

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論