版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
VisualBasic.NET程序設計教程1VisualBasic.NET1第一章VB.NET基礎第二章簡單的VB.NET程序設計第三章VB.NET語言基礎第四章基本的控制結構第五章數(shù)組第六章過程第七章用戶界面設計第八章面向?qū)ο蟪绦蛟O計基礎第九章文件第十章圖形應用程序開發(fā)第十一章數(shù)據(jù)庫應用程序開發(fā)目錄2第一章VB.NET基礎目錄2第一章VB.NET基礎
1.1VB.NET概述
1.2VB.NET集成開發(fā)環(huán)境1.3使用幫助系統(tǒng)本章目錄3第一章VB.NET基礎1.1VB.NET概述 本章目1.1VB.NET概述1.1.1VisualBasic的發(fā)展20世紀60年出現(xiàn)Basic語言;20世紀80年代,TrueBasic、QuickBasic和TurboBasic等;1991年Microsoft公司推出VisualBasic1.0,以可視化工具為界面設計、結構化Basic語言為基礎,以事件驅(qū)動為運行機制。從1991年的VB1.0至1998年的VB6.0的多次版本升級,功能更強大、完善,應用面更廣;2002年正式發(fā)布VisualBasic.NET。本章目錄41.1VB.NET概述1.1.1VisualBasic1.1.2Microsoft.NET概述什么是.NET?.NET代表了一個集合、一個環(huán)境、一個編程的基本結構,作為一個平臺來支持下一代的Internet。.NET也是一個用戶環(huán)境,是一組基本的用戶服務,可以作用于客戶端、服務器或任何地方。對初學VB的人來說,可以這樣認為,.NET就是VisualStudio.NET。本章目錄51.1.2Microsoft.NET概述什么是.NET?VisualStudio.NETWindows應用程序ASP.NET程序中間語言(IL)程序(EXE)基礎類庫第一次編譯第二次編譯在不同的CPU上運行VB.NETVJ#.NETVC++.NETVC#.NETVisualStudio.NETCLR本章目錄6VisualStudio.NETWindows應用程序A1.1.3VB.NET特點1引例例1.1簡單的動畫演示。一行文字“歡迎使用VB.NET”在具有背景圖案的窗體中上、下移動。移動方法有兩種:單擊手動按鈕,移動5個像素單位;單擊自動按鈕,按定時器觸發(fā)頻率連續(xù)移動;當內(nèi)容超出窗體范圍時,進行反彈。本章目錄71.1.3VB.NET特點1引例本章目錄7引例根據(jù)要求,用工具箱上的Label、Button、Timer等控件,在窗體上建立控件對象,進行有關的屬性設置。
本章目錄8引例根據(jù)要求,用工具箱上的Label、Button、Time引例:編寫事件過程本章目錄9引例:編寫事件過程本章目錄9
提供了易學易用的應用程序集成開發(fā)環(huán)境具有面向?qū)ο蟮目梢暬O計工具事件驅(qū)動的編程機制支持結構化程序設計,具有面向?qū)ο蟪绦蛟O計語言的所有特征具有豐富的數(shù)據(jù)類型、功能強大的類庫強大的數(shù)據(jù)庫功能網(wǎng)絡功能完備的幫助功能VB.NET功能特點本章目錄10提供了易學易用的應用程序集成開發(fā)環(huán)境VB.NET功能特點1.2VB.NET的集成開發(fā)環(huán)境1.2.1進入VB.NET
啟動VisualStudio.NET“起始頁”選擇“新建項目/打開項目”按鈕
VisualBasic項目
Windows應用程序
本章目錄111.2VB.NET的集成開發(fā)環(huán)境1.2.1進入VB.NEVB.NET集成開發(fā)環(huán)境本章目錄12VB.NET集成開發(fā)環(huán)境本章目錄121.2.2主窗口三種工作模式
設計模式界面的設計和代碼的編制
運行模式運行應用程序
中斷模式暫時中斷程序運行,調(diào)試程序
2.菜單欄
包括11個下拉菜單
3.工具欄本章目錄131.2.2主窗口三種工作模式本章目錄131.2.3窗體設計/代碼設計窗口1.窗體設計器窗口
建立VB.NET應用程序的界面(一個應用程序可以有多個窗體,通過“項目|添加Windows窗體”命令增加新窗體)。
2.代碼設計窗口
專門用來進行代碼設計,包括各種事件過程、過程和類等源程序代碼的編寫和修改。打開代碼設計窗口的方法:雙擊窗體、控件或單擊代碼窗口上方的選項卡組對應項。
本章目錄141.2.3窗體設計/代碼設計窗口1.窗體設計器窗口本章1.2.4屬性窗口窗體和控件稱為對象,每個對象用一組屬性來描述其外部特征,如顏色、大小等。屬性窗口用于顯示和設置所選定的對象的屬性。屬性窗口由四部分組成:對象和名稱空間列表框?qū)傩燥@示排列方式
屬性列表框
屬性含義說明本章目錄151.2.4屬性窗口窗體和控件稱為對象,每個對象用一組屬1.2.5解決方案資源管理器窗口項目一個獨立的編程單位(包含窗體文件及其他一些相關文件),若干項目組成一個解決方案解決方案可以含有以下類型的文件:解決方案文件(.sln)可包括用不同語言開發(fā)的項目項目文件(.vbproj)由引用的組件和代碼模塊組成代碼模塊文件(.vb)包括窗體文件、類模塊或其他代碼文件本章目錄161.2.5解決方案資源管理器窗口項目一個獨立的編程單1.3使用幫助系統(tǒng)動態(tài)幫助屬性窗口“動態(tài)幫助”標簽卡內(nèi)索引使用上下文相關的幫助按“F1”鍵網(wǎng)絡資源通過http:///china/msdn網(wǎng)站,獲得最新、最及時的有關幫助信息。
本章目錄171.3使用幫助系統(tǒng)動態(tài)幫助屬性窗口“動態(tài)幫助本章小節(jié)VisualStudio.NET一個支持下一代Internet的平臺VB.NET的三種工作模式
設計模式、運行模式、中斷模式組成本章目錄解決方案項目組件和代碼模塊項目組件和代碼模塊18本章小節(jié)VisualStudio.NET本章目錄解決方案項第二章簡單的VB.NET程序設計
2.1VB.NET對象的概念2.2建立簡單的應用程序2.3窗體和基本控件2.4綜合應用本章目錄19第二章簡單的VB.NET程序設計2.1VB.NET2.1VisualBasic對象的概念2.1.1對象和類1.對象對象就是日常生活中的某個實在的物體例如,一個人、一輛汽車、一臺電腦。對象都具有各自的特征(屬性)、行為(方法)
。人有身高、體重、聽力等特征;也具有起立、行走、說話、踢足球等行為。在VB.NET中,將反映對象的屬性和行為封裝在一起,是面向?qū)ο缶幊痰幕驹?。本章目?02.1VisualBasic對象的概念2.1.1對象2.類的概念類
同種對象的集合與抽象,是創(chuàng)建對象實例的模板,包含所創(chuàng)建對象的屬性描述和行為特征的定義。例如,人類是具體人的抽象。每個人有不同的身高、體重等屬性值和不同的行為。VB.NET工具箱中的可視圖標是VB.NET系統(tǒng)設計好的標準控件類。通過將控件類實例化,得到真正的控件對象。在窗體上畫一個控件,就將類轉(zhuǎn)換為對象,創(chuàng)建了一個控件對象(簡稱控件)。本章目錄212.類的概念類同種對象的集合與抽象,是創(chuàng)建對象實例的例如:工具箱內(nèi)的TextBox是類(它確定了TextBox的屬性、方法和事件)窗體上顯示的是兩個Text對象Text對象Text類本章目錄22例如:工具箱內(nèi)的TextBox是類(它確定了TextBox的屬性、事件和方法構成對象的三要素1.屬性存放對象的數(shù)據(jù)(決定對象外觀及功能)例如,控件名稱、文本、大小等屬性。對象屬性的設置方法:
設計階段利用屬性窗口直接設置屬性值程序運行時通過語句對象名.屬性名=屬性值
例如:Button1.Text="確定"注意:若屬性只能在設計階段設置,在程序運行階段不可改變,稱為只讀屬性。
2.1.2對象的屬性、事件和方法本章目錄23屬性、事件和方法構成對象的三要素2.1.2對象的屬性、事事件發(fā)生在對象上的事情同一事件,對不同的對象,會引發(fā)不同的反應:事件本章目錄教師_鈴聲()講課EndSub學生_鈴聲()聽講接受知識EndSubVB.NET為對象預先定義了一系列的事件。例如,單擊Click、獲取焦點GotFocus、按下鍵盤KeyPress等其他人員_鈴聲()可不響應EndSub24事件發(fā)生在對象上的事情事件本章目錄教師_鈴聲()學生事件過程應用程序處理事件的步驟它針對某一對象并與該對象的一個事件相聯(lián)系應用程序設計的主要工作就是為對象編寫事件過程的代碼。事件過程的形式如下:Sub對象名_事件(對象引用,事件信息)Handles事件處理程序
… 事件過程代碼EndSub對象引用:指向引發(fā)事件的對象事件信息:與事件相關的信息事件過程本章目錄25事件過程應用程序處理事件的步驟事件過程本章目錄25例2.1在命令按鈕的Click事件過程,改變按鈕的字體顏色.代碼說明
注意:在代碼窗,自動產(chǎn)生事件過程的模板,不要修改模板的內(nèi)容,只需鍵入過程的代碼。一個動作可能同時發(fā)生多個事件。例如單擊鼠標同時發(fā)生了:Click、MouseDown、MouseUp事件編程時,只要對需要的事件過程編碼,無編碼的事件為空事件,系統(tǒng)就不處理該事件過程。本章目錄26例2.1在命令按鈕的Click事件過程,改變按鈕的字體顏色事件驅(qū)動程序設計方式:程序執(zhí)行的先后次序與程序設計者無關,取決于用戶的操作。VB.NET程序的執(zhí)行步驟:①
啟動應用程序,裝載和顯示窗體;②
窗體(或窗體上的控件)等待事件的發(fā)生;③
事件發(fā)生時,執(zhí)行對應的事件過程;④
重復執(zhí)行步驟②和③。事件驅(qū)動程序設計本章目錄27事件驅(qū)動程序設計方式:程序執(zhí)行的先后次序與程序設計者無關方法面向?qū)ο蟮某绦蛟O計語言,為程序設計人員提供了一種特殊的過程和函數(shù),稱為方法。方法是面向?qū)ο蟮模{(diào)用時一定要指明對象。對象方法的調(diào)用格式為: [對象.]方法[參數(shù)名表]若省略對象,表示當前對象,一般指窗體。例如:Textbox1.Focus此語句使Textbox1控件獲得焦點,光標在本文框內(nèi)閃爍。本章目錄28方法面向?qū)ο蟮某绦蛟O計語言,為程序設計人員提供了一種特殊的過2.2建立簡單的應用程序
例2.2編寫一個人民幣與美圓兌換的程序。建立一個應用程序分為以下幾步進行:(1)建立用戶界面的對象(2)對象屬性的設置(3)對象事件過程及編程(4)保存和運行程序本章目錄代碼說明292.2建立簡單的應用程序例2.2編寫一個人民幣與美圓兌對象事件過程及編程
代碼窗口的對象列表框可顯示窗體所有對象過程列表框列出所選中對象的所有事件例如,在按鈕Button2的Click事件加入代碼:SubButton2_Click(ByValsenderAsSystem.Object,_ByValeAsSystem.EventArgs)HandlesButton2.ClickTextBox1.Text=Val(TextBox3.Text)*Val(TextBox2.Text)EndSubVal()函數(shù)將數(shù)字字符轉(zhuǎn)換成數(shù)值型
本章目錄30對象事件過程及編程代碼窗口的對象列表框可顯示窗體所有對象保存程序和文件組成
程序存盤后將建立一個文件夾,包含如下內(nèi)容:(1)xxx.sln項目關聯(lián)、配置等的信息
(2)xxx.suo開發(fā)環(huán)境選項的信息(3)xxx.vbproj項目文件(4)Form1.vb窗體文件(5)AssemblyInfo.vb項目集合信息(系統(tǒng)自動建立)(6)xxx.exe可執(zhí)行文件(在Bin文件夾)(7)Bin文件夾可執(zhí)行文件的默認路徑,
可用Application.StartupPath()獲得該路徑。(8)Debug文件夾存放程序調(diào)試產(chǎn)生的信息本章目錄31保存程序和文件組成程序存盤后將建立一個文件夾,包含如下內(nèi)容2.3窗體和基本控件2.3.1通用屬性
屬性設置兩種方式:通過屬性窗口設置在代碼設計窗口通過代碼來設置
在VB.NET中,屬性的類型有:基本數(shù)據(jù)類型枚舉類型結構類型用代碼設置時,需要用不同方式表示不同的類型本章目錄322.3窗體和基本控件2.3.1通用屬性本章目錄322.3.1通用屬性(1)Name所有對象都具有的屬性,表示所創(chuàng)建的對象名稱。在程序中通過對象名稱來引用對象,不會顯示在窗體上。(2)Text用于在窗體上顯示對象的文本TextBox控件的Text還可以獲取輸入信息本章目錄332.3.1通用屬性(1)Name本章目錄33(3)控件布局屬性控件布局由Location、Size結構來實現(xiàn),它們各有一對整數(shù)來表示,整數(shù)單位為像素。Location控件左上角位置,Size控件大小例如,命令按鈕控件布局Button1.Location=NewPoint(88,48)Button1.Size=NewSize(80,32)也可用Left、Top定位;用Width和Height來表示控件的寬度和高度。本章目錄等效的語句設置:Button1.Left=88Button1.Top=48Button1.Width=80Button1.Height=32
34(3)控件布局屬性本章目錄等效的語句設置:3(4)Font屬性值是Font類的對象,一般通過Font屬性對話框設置若在程序代碼中需要改變文本的外觀,則應通過New創(chuàng)建Font對象來改變字體。例如:Label1.Font=NewSystem.Drawing.Font("Arial",10)本章目錄35(4)Font屬性值是Font類的對象,一般通過Fo(5)ForeColor、BackColor顏色屬性ForeColor控件正文前景色BackColor背景色(6)Cursor指示鼠標光標圖像設置值是一個Cursors枚舉類型的枚舉值。若要用戶定義自己的指針圖標,可通過如下語句實現(xiàn):對象名.Cursor=NewSystem.Windows.Forms.Cursor("圖標文件名")
本章目錄36(5)ForeColor、BackColor顏色屬性本(7)Dock控件放置靠窗體邊框的位置,屬性值是DockStyle枚舉類型,有六個枚舉值(8)Enabled、Visible控件的有效、可見性本章目錄(9)TabIndex按Tab鍵時,焦點在各個控件移動的順序EnabledVisibleTrue允許用戶操作程序運行時控件可見False禁止用戶操作運行時控件不可見37(7)Dock控件放置靠窗體邊框的位置,屬性值是D2.3.2窗體窗體是一塊畫布,是所有控件的容器,可以根據(jù)需要利用工具箱上的控件在窗體上畫界面。1.主要屬性本章目錄382.3.2窗體窗體是一塊畫布,是所有控件的容器,可以根窗體-屬性(1)
MaxButton、MinButton
設置為True,窗體上有最大(小)化按鈕;為False時無最大(小)化按鈕(2)Icon、ControlBox窗體圖標、控制菜單ControlBox屬性為True,窗體上有控制菜單框;為False時無控制菜單(系統(tǒng)將MaxButton和MinButton自動設置為False)(3)BackgroundImage窗體背景圖案(4)FormBorderStyle窗體的邊框類型本章目錄39窗體-屬性(1)MaxButton、MinButton窗體-事件最常用的事件有Click、DblClick和LoadLoad事件窗體裝入內(nèi)存時觸發(fā)(應用程序啟動時自動執(zhí)行該事件),常用來在啟動時對屬性和變量初始化。例2.3編寫三個事件過程,要求如下:啟動窗體,在標題欄顯示“裝入窗體”,并將#bmp作為背景圖平鋪窗體、窗體邊框為Fixed3D;單擊窗體,標題欄顯示對應的文字、裝入tongji-2.bmp圖片大小為264×256,要求圖片正好充滿窗體。雙擊窗體,標題欄顯示對應的文字、窗體無最大化和最小化按鈕,清除裝入的圖片。代碼說明本章目錄40窗體-事件最常用的事件有Click、DblClick和Lo窗體-方法使用方法的語法形式:
[對象.]方法[參數(shù)列表]窗體方法主要有ShowDialog、Show、Hide等,主要用于多窗體的顯示和隱藏等例如:Me.Hide本章目錄41窗體-方法使用方法的語法形式:本章目錄412.3.3標簽-屬性標簽用來顯示文本信息(不能輸入)除Name、Font、Size、Location、Enable等屬性外,其它主要屬性:(1)Text、TextAlign:設置顯示的文本、文本的對齊方式TextAlign屬性是枚舉類型,提供標簽控件上文本的9種對齊方式本章目錄422.3.3標簽-屬性標簽用來顯示文本信息(不能輸入)T(2)BackColor背景色(默認與窗體背景相同)。若要以透明方式顯示,需要設置Color枚舉類型的Transparent。(3)BorderStyle標簽控件邊框樣式None控件周圍沒有邊框(默認值)FixedSingle控件帶有單邊框Fixed3D控件帶有立體邊框(4)AutoSize控件是否能自動調(diào)整大小當值為False,保持控件原設計時的大小,正文若太長則顯示其中的一部分。本章目錄43(2)BackColor背景色(默認與窗體背景相同)。(5)Image、ImageAlign
設置控件的背景圖案和圖案對齊方式ImageAlign屬性與TextAlign類似通過代碼設置圖案:標簽名.Image=Image.FromFile("圖片名")例2.4在4個標簽中存放4個方向的“手指”圖片,當單擊某方向時,利用“Dock”屬性定位第5個標簽、并顯示相關信息。
代碼說明本章目錄44(5)Image、ImageAlign代碼說明本章目錄42.3.4文本框文本框是一個文本編輯區(qū)域,可以在該區(qū)域輸入、編輯、修改和顯示正文內(nèi)容。(1)Text
顯示或輸入的正文內(nèi)容(2)Maxlength
設置文本框可輸入的文字最大長度。默認值為0,表示可以輸入任意長字符串。注意:在VB.NET中字符長度以字為單位,也就是一個西文字符與一個漢字都是一個字,長度為1。
本章目錄452.3.4文本框文本框是一個文本編輯區(qū)域,可以在該區(qū)域(3)MultiLine多行屬性設置為True時,文本框可以輸入或顯示多行正文,同時具有文字處理器的自動換行功能,按Enter鍵可插入一空行。(4)ScrollBars滾動條屬性None無滾動條Horizontal水平滾動條Vertical垂直滾動條Both同時加水平和垂直滾動條當MultiLine為True時,ScrollBars才有效本章目錄46(3)MultiLine多行屬性本章目錄46(5)PassWordChar設置顯示文本的替代符。例如,當設置為“*”,則在文本框輸入的內(nèi)容均以“*”顯示,而存儲的值是用戶輸入的原文。一般用于設置口令的輸入。當MultiLine為True時,該屬性不起作用,密碼不允許多行。(6)ReadOnly指定文本控件是否可被編輯,默認值為False(可編輯),當設置為True時,文本控件相當于標簽控件的作用。
本章目錄47(5)PassWordChar設置顯示文本的替代符。例(7)文本內(nèi)容進行選擇操作SelectionStart選定的正文開始位置SelectionLength選定的正文長度SelectedText選定的正文內(nèi)容設置SelectionStart和SelectionLength屬性后,SelectedText會自動存放設定的正文例2.5
利用屬性實現(xiàn)對文本信息的剪切、拷貝、粘貼等功能。
本章目錄代碼說明48(7)文本內(nèi)容進行選擇操作本章目錄代碼說明48文本框-事件(1)TextChanged事件當Text屬性值發(fā)生改變時引發(fā)該事件例在文本框每輸入一個字符就引發(fā)一次事件(2)KeyPress事件按下并且釋放鍵盤上的一個鍵時,引發(fā)焦點所在控件的KeyPress事件,所按鍵的值存放在參數(shù)e.KeyChar中例對回車的判斷Asc(e.KeyChar)=13本章目錄49文本框-事件(1)TextChanged事件本章目錄49(3)LostFocus事件對象失去焦點時發(fā)生LostFocus事件該事件主要是用來對數(shù)據(jù)進行驗證和確認,常用于檢查Text屬性的內(nèi)容。(4)GotFocus事件GotFocus事件與LostFocus事件相反,當一個對象獲得焦點時發(fā)生本章目錄50(3)LostFocus事件本章目錄50文本框-方法文本框最有用的方法是Focus,把光標移到指定的文本框中。其形式如下:
[對象.]FocusFocus還可以用于如CheckBox、Button、ListBox、ComboBox等控件。例2.6對輸入的數(shù)據(jù)進行合法性檢驗,過濾不合法的數(shù)據(jù)。本章目錄51文本框-方法文本框最有用的方法是Focus,把光標移到指定的2.3.5命令按鈕用于程序運行時執(zhí)行相應的事件1.屬性(1)Text命令按鈕上顯示的文字(2)FlatStyle按鈕的外觀該屬性有4個枚舉值:Flat以平面顯示按鈕Popup鼠標在按鈕上以Flat形式顯示,否則以Standand顯示Standand以三維效果顯示(默認)System由操作系統(tǒng)決定外觀形式本章目錄522.3.5命令按鈕用于程序運行時執(zhí)行相應的事件本章目錄命令按鈕(3)Image、BackGroundImage當FlatStyle屬性值設置為非System的值時,則可以使用Image、BackGroundImage屬性為按鈕設置圖形或背景圖,顯示不同的圖形文件(.bmp和.ico)。通常情況使用Image屬性。(4)TextAlign、ImageAlign設置文本、圖形在按鈕上的對齊方式2.事件
命令按鈕一般接收Click事件
本章目錄53命令按鈕(3)Image、BackGroundImage2.4綜合應用例2.7建立一個類似記事本的應用程序,提供:(1)剪切、復制和粘貼的編輯操作(2)字體大小的格式設置分析:(1)建立一個文本框輸入文本,文本框應該有滾動條,為了便于調(diào)試,程序運行時文本框有初始值。(2)利用文本框的SelectedText屬性實現(xiàn)“剪切、復制和粘貼”的編輯操作;(3)“格式”設置利用Font對象實現(xiàn)。代碼說明本章目錄542.4綜合應用例2.7建立一個類似記事本的應用程序,提供本章小節(jié)類是同種對象的集合與抽象,包含所創(chuàng)建對象的屬性描述和行為特征的定義,是創(chuàng)建對象實例的模板。對象三要素:屬性、事件、方法屬性的類型:基本數(shù)據(jù)類型、枚舉類型、結構類型窗體是所有控件的容器基本控件標簽、文本框、命令按鈕本章目錄55本章小節(jié)類是同種對象的集合與抽象,包含所創(chuàng)建對象的屬性描述和思考題1.什么是類?什么是對象?什么是事件過程?2.屬性和方法的區(qū)別是什么?3.如何建立一個完整的應用程序?4.如何在文本框內(nèi)顯示多行文本?5.如何使對象獲得焦點?6.如何在命令按鈕上設置圖形?本章目錄56思考題1.什么是類?什么是對象?什么是事件過程?本章目錄5第三章VB.NET語言基礎
3.1變量、常量與數(shù)據(jù)類型3.2運算符和表達式3.3常用函數(shù)3.4程序結構和編碼規(guī)則3.5綜合應用本章目錄57第三章VB.NET語言基礎3.1變量、常量與數(shù)據(jù)類3.1變量、常量和數(shù)據(jù)類型3.1.1變量概述
變量在程序運行中其存儲的值可以改變命名規(guī)則:必須以字母或漢字開頭,由字母、漢字、數(shù)字或下劃線組成,長度小于等于255個字符不能使用VB.NET中的關鍵字VB.NET不區(qū)分變量名的大小寫,一般變量名首字母用大寫,其余用小寫字母表示;常量全部用大寫字母表示本章目錄583.1變量、常量和數(shù)據(jù)類型3.1.1變量概述本章目錄3.1.1變量概述值類型和引用類型的變量
值類型變量直接存放數(shù)據(jù)。每個值類型變量有它自己的數(shù)據(jù)拷貝,因此對一個值類型變量的操作不能影響其他的變量。引用類型變量并不真的包含數(shù)據(jù),存放的是指向其他數(shù)據(jù)的內(nèi)存地址的指針,也就是把數(shù)據(jù)值所在的地址作為引用變量的值。該種變量對象的引用簡稱為賦值或存儲。字符串、數(shù)組和類是引用類型的變量。本章目錄593.1.1變量概述值類型和引用類型的變量本章目錄59變量概述x是值類型變量,存放的值為1234;s是引用類型變量,指向"VB.NET"的一個引用
本章目錄60變量概述x是值類型變量,存放的值為1234;s是引用類型3.1.2數(shù)據(jù)類型本章目錄613.1.2數(shù)據(jù)類型本章目錄613.1.3變量聲明1.用Dim語句顯式聲明變量
Dim變量名[As類型][=初始值]As部分缺省,創(chuàng)建的變量為Object類型初始值子句,表示給聲明的變量賦值一條Dim語句可同時定義多個變量。多個相同類型變量,可用一個As來指定(前面幾個由逗號分隔),這時不能給變量賦初值。例如:Dimm,n,jAsInteger,x,yAsSingle,k
k為Object類型
本章目錄623.1.3變量聲明1.用Dim語句顯式聲明變量本章目錄6變量聲明2.隱式聲明默認狀態(tài)下,系統(tǒng)要求對使用的變量都顯式聲明,當使用沒有聲明的變量時,該變量名下有綠色曲線(表示語法錯)。若對變量不聲明而直接使用,稱為隱式聲明。則需要在模塊中所有程序代碼的最前面加語句:
OptionExplicitOff
本章目錄63變量聲明2.隱式聲明本章目錄633.1.4常量常量是在程序運行中不變的量,VB.NET中有三種常量:直接常量其常數(shù)值直接反映了其類型符號常量用戶聲明,便于程序閱讀或修改Const符號常量名[As類型]=表達式系統(tǒng)常量系統(tǒng)提供許多內(nèi)部常量和枚舉例如:vbCrLf回車/換行組合符枚舉如控件的顏色、邊框線型等本章目錄643.1.4常量常量是在程序運行中不變的量,VB.NET3.2運算符和表達式和其他語言一樣,VB.NET中也具有豐富的運算符,通過運算符和操作數(shù)組合成表達式,實現(xiàn)程序編制中所需的大量操作。運算符是表示實現(xiàn)某種運算的符號。VB.NET中的運算符可分算術運算符、字符串運算符、關系運算符和邏輯運算符四類。本章目錄653.2運算符和表達式和其他語言一樣,VB.NET中也具有3.2.1算術運算符例:5+10mod10\9/3+2^2結果:10
注意:對算術運算符兩邊的操作數(shù)應是數(shù)值型,若是數(shù)字字符或邏輯型,則自動轉(zhuǎn)換成數(shù)值類型后再運算。例如:30-True結果是31,邏輯量True轉(zhuǎn)為數(shù)值-1,F(xiàn)alse轉(zhuǎn)為數(shù)值0False+10+"4"結果是14本章目錄663.2.1算術運算符例:5+10mod10\9/字符串運算符&
兩旁的操作數(shù)可任意,轉(zhuǎn)換成字符型后再連接+
兩旁的操作數(shù)應均為字符型;若為數(shù)值型則進行算術加運算;若一個為數(shù)字字符,另一個為數(shù)值,則自動將數(shù)字字符轉(zhuǎn)換為數(shù)值后進行算術加;若一個為非數(shù)字字符型,另一個為數(shù)值型,則出錯。例如:
操作結果操作結果"ab"&123"ab123" "ab"
+12出錯"12"&456"12456" "12"+
456468"12"&True"12True" "12"+
True11注意:在變量后使用運算符&時,變量與&間應加一個空格
本章目錄67字符串運算符&兩旁的操作數(shù)可任意,轉(zhuǎn)換成字符型后再連接本章關系運算符關系運算符是雙目運算符,作用是對兩個操作數(shù)進行大小比較,若關系成立,則返回True,否則返回False。操作數(shù)可以是數(shù)值型、字符型。本章目錄運算符例結果="ABCDE"="ABR"False>"ABCDE">"ABR"False>="bc">="abcde
"True<23<3False<="23"<"3"
True<>"abc"<>"abcde
"True68關系運算符關系運算符是雙目運算符,作用是對兩個操作數(shù)進行大小邏輯運算符邏輯運算符除Not是單目運算符外,其余都是雙目運算符,作用是將操作數(shù)進行邏輯運算,結果是邏輯值True或False。本章目錄69邏輯運算符邏輯運算符除Not是單目運算符外,其余都是雙目運3.2.2表達式1.組成
變量、常量、函數(shù)、運算符和圓括號2.書寫規(guī)則運算符不能相鄰例a+-b是錯誤的乘號不能省略例x乘以y應寫成:x*y括號必須成對出現(xiàn)(均使用圓括號)表達式從左到右在同一基準上書寫,無高低、大小3.不同數(shù)據(jù)類型的轉(zhuǎn)換運算結果的數(shù)據(jù)類型向精度高的數(shù)據(jù)類型靠Integer<Long<Single<Double<Currency4.優(yōu)先級算術運算符>=字符運算符>關系運算符>邏輯運算本章目錄703.2.2表達式1.組成變量、常量、函數(shù)、運算符表達式書寫舉例a*b*c*d/e/f/g或a*b*c*d/(e*f*g)選拔優(yōu)秀生的條件為:年齡(Age)小于19歲,三門課總分(Total)高于285分,其中有一門為100分,如果其表達式寫為:Age<19AndTotal>285And(Mark1=100OrMark2=100OrMark3=100)sin(45*3.14/180)+(exp(10)+log(10))/sqr(x+y+1)本章目錄71表達式書寫舉例a*b*c*d/e/f/g或3.3常用函數(shù)3.3.1名稱空間和類VB.NET通過名稱空間把類庫劃分為不同的組,將功能相近的類劃到相同的名稱空間。有了名稱空間,可以方便地組織應用程序要使用的各個類。(1)VB.NET函數(shù)庫的名稱空間和模塊Conversion轉(zhuǎn)換函數(shù)DateAndTime日期和時間函數(shù)Strings字符串函數(shù)VbMath隨機函數(shù)本章目錄723.3常用函數(shù)3.3.1名稱空間和類本章目錄723.3.1名稱空間和類(2)基礎類庫中的名稱空間和類類別名稱空間說明基本數(shù)據(jù)類型System
基本的和經(jīng)常使用的數(shù)據(jù)類型、事件和事件處理程序、接口、屬性和異常處理等編程基礎System.Collections
System.IO對象集合文件管理及其輸入/輸出圖形System.Drawing
System.Windows.Forms
GDI+Windows的應用程序的豐富用戶數(shù)據(jù)庫System.Data
ADO.NET的各種對象本章目錄733.3.1名稱空間和類(2)基礎類庫中的名稱空間和類類別名稱空間的使用引用名稱空間的方法:
項目引用新建一個項目時,VB.NET根據(jù)所建項目類型,自動導入部分名稱空間的引用直接引用給出名稱空間的全名,就可訪問其中的任一個類及其各項內(nèi)容
例使用Math類開方函數(shù)sqrt:
Label1.Text=system.Math.sqrt(100)
Imports語句導入在代碼中就可直接使用名稱空間的類或成員。導入語句的格式:
Imports
名稱空間
本章目錄74名稱空間的使用引用名稱空間的方法:本章目錄743.3.2數(shù)學函數(shù).NET中的數(shù)學函數(shù)包含在Math類。使用前在模塊的開頭用語句ImportsSystem.Math導入-43Int(-3.5)Int(3.5)取小于或等于N的最大整數(shù)Int(N)2.3Log(10)自然對數(shù)Log(N)-33Fix(-3.5)Fix(3.9)取整Fix(N)20.086Exp(3)exExp(N)1Cos(0)余弦函數(shù)Cos(N)3.5Abs(-3.5)取絕對值Abs(N)結果實例含義函數(shù)名本章目錄753.3.2數(shù)學函數(shù).NET中的數(shù)學函數(shù)包含在Math類。使數(shù)學函數(shù)0Tan(0)正切函數(shù)Tan(N)3Sqr(9)平方根Sqr(N)-1Sgn(-3.5)符號函數(shù)Sgn(N)0Sin(0)正弦函數(shù)Sin(N)-44Round(-3.5)Round(3.5)四舍五入取整Round(N)[0,1)之間的數(shù)Rnd產(chǎn)生隨機數(shù)Rnd[(N)]結果實例含義函數(shù)名Rnd函數(shù)返回0和1(包括0但不包括1)之間的雙精度隨機數(shù).每次運行時,要產(chǎn)生不同序列的隨機數(shù),先執(zhí)行Randomize語句。產(chǎn)生a~b的之間的隨機整數(shù):Int(Rnd*(b-a)+a)本章目錄76數(shù)學函數(shù)0Tan(0)正切函數(shù)Tan(N)3Sqr(9)平3.3.3轉(zhuǎn)換函數(shù)"ABC"Ucase$("abc")小寫字母轉(zhuǎn)為大寫字母Ucase(C)"144"Oct$(100)十進制轉(zhuǎn)換成八進制Oct](N)"123.45"Str$(123.45)數(shù)值轉(zhuǎn)換為字符串Str(N)123Val("123AB")數(shù)字字符串轉(zhuǎn)換為數(shù)值Val(C)"abc"Lcase$("ABC")大寫字母轉(zhuǎn)為小寫字母Lcase$(C)64Hex(100)十進制轉(zhuǎn)換成十六進制Hex(N)"A"Chr$(65)ASCII碼值轉(zhuǎn)換成字符Chr(N)2003-11-13CDate("2003/11/13")轉(zhuǎn)換成日期型CDate65Asc("A")字符轉(zhuǎn)換成ASCII碼值Asc(C)結果實例功能
函數(shù)名本章目錄773.3.3轉(zhuǎn)換函數(shù)"ABC"Ucase$("abc")小轉(zhuǎn)換函數(shù)說明(1)Chr和Asc函數(shù)互為反函數(shù)。(2)Str函數(shù)將非負數(shù)值轉(zhuǎn)換成字符類型后,會在轉(zhuǎn)換后的字符串左邊增加一空格。(3)Val將數(shù)字字符串轉(zhuǎn)換為數(shù)值類型,當字符串中出現(xiàn)數(shù)值類型規(guī)定的字符外的字符,則停止轉(zhuǎn)換,函數(shù)返回的是停止轉(zhuǎn)換前的結果。例如表達式:Val("-123.45ty3")結果為-123.45。(4)CDdate函數(shù)將以日期型表達式轉(zhuǎn)換成日期類型。例如表達式:CDate("2005/5/12")結果為日期類型VB.NET中還有其他類型轉(zhuǎn)換函數(shù),例如,CInt、CBool、CSng、CStr等,詳細例子查閱幫助功能。本章目錄78轉(zhuǎn)換函數(shù)說明(1)Chr和Asc函數(shù)互為反函數(shù)。本章目錄73.3.4字符串函數(shù)字符串編碼VB.NET中字符串長度是以字(習慣稱字符)為單位,每個西文字符和每個漢字都作為一個字,占兩個字節(jié)。這是因為VB.NET采用Unicode(國際標準化組織ISO字符標準)來存儲和操作字符串。VB.NET中字符串處理有兩種方式:保留和更新了VB6.0版本提供的函數(shù);另一種是用System.String類的成員(函數(shù))
本章目錄793.3.4字符串函數(shù)字符串編碼本章目錄79字符串函數(shù)"BCD"Mid("ABCDE",2,3)取字符子串Mid(C,N1[,N2])"ABCD"Trim("ABCD")去掉字符串兩邊空格Trim(C)"A3AB3"Replace("ACDABCD","CD","3")用C2替代C1Replace(C,C1,C2)""Space(3)產(chǎn)生N個空格的字符串
Space(N)4Len("AB教育")字符串長度Len(C)"ABC"Left("ABCDE",3)取字符串左邊n個字符Left(C,N)7InStr(2,"EFABCDEFG","EF")從n開始,在C1中找C2InStr([N,]C1,C2[,M])結果實例說明
函數(shù)名本章目錄80字符串函數(shù)"BCD"Mid("ABCDE",2,3)取字符字符串函數(shù)"ABCD"TRim(“ABCD")去掉字符串兩邊的空格TRim(C)"DCBA"StrReverse("ABCD")將字符串反序StrReverse(C)"AAA"String(3,"ABC")重復首字符n次String(N,C)S(0)="123"S(1)=“ab"S=Split("123,ab",",")將字符串分隔成字符數(shù)組。與Join作用相反Split(C[,D])“"Space(3)產(chǎn)生n個空格的字符串Space(N)"ABCD"RTrim("ABCD")去掉字符串右邊空格RTrim(C)“BCD"Right("ABCD",3)取字符串右邊n個字符Right(C,N)結果實例說明
函數(shù)名本章目錄81字符串函數(shù)"ABCD"TRim(“ABCD")去掉字3.3.5日期函數(shù)Second(#1:12:56PM#)返回秒(0~59)Second(C|N)Time返回系統(tǒng)時間Time[()]Year(365)返回年代號(1753~2078)Year(C|N)Now返回系統(tǒng)日期和時間NowMonth("2003,05,01")返回月份代號(1~12)Month(C|N)Minute(#1:12:56PM#)返回分鐘(0~59)Minute(C|N)Hour(#1:12:56PM#)返回小時(0~24)Hour(C|N)Day("2003,05,01")返回日期代號(1~31)Day(C|N)Date返回系統(tǒng)日期Date[()]實例說明
函數(shù)名例計算從當前日期到2007年6月30日有多少天?表達式為:DateDiff("d",Now,#6/30/2007#)本章目錄823.3.5日期函數(shù)Second(#1:12:56PM#)3.3.6Shell函數(shù)Shell函數(shù)可調(diào)用各種應用程序。格式如下:
Shell(命令字符串[,窗口類型])命令字符串為要執(zhí)行的應用程序名(包括路徑),必須是可執(zhí)行文件(.com、.exe、.bat)。窗口類型表示執(zhí)行應用程序的窗口狀態(tài),0~4,6的整型數(shù)值,1表示正常窗口狀態(tài)。函數(shù)調(diào)用成功返回一個任務標識ID,不成功,則返回0。本章目錄833.3.6Shell函數(shù)Shell函數(shù)可調(diào)用各種應用程序3.4程序結構和編碼規(guī)則本章目錄843.4程序結構和編碼規(guī)則本章目錄84程序結構和編碼規(guī)則編碼規(guī)則(1)VB.NET代碼不區(qū)分字母的大小寫關鍵字,首字母自動轉(zhuǎn)換成大寫,其余字母轉(zhuǎn)換成小寫。對于用戶自定義的變量、過程名,以第一次定義的為準,以后輸入的自動向首次定義的形式轉(zhuǎn)換。(2)語句書寫自由一行上可書寫多句語句(用冒號分隔),一行最多255個字符。單行語句可分若干行書寫,在本行后加入續(xù)行符(空格和下劃線)。本章目錄85程序結構和編碼規(guī)則編碼規(guī)則本章目錄853.5綜合應用例3.3
模仿字處理軟件中字符串替換功能和字幕滾動。設計思路:利用Shell函數(shù)調(diào)用winword.exe執(zhí)行Word程序觀察其替換對話框。本例字符串替換功能實現(xiàn)方法:利用查找(InStr)、取子串(Left、Mid)等函數(shù)實現(xiàn)利用替換(Replace)函數(shù)實現(xiàn)標題顯示:Form1.Caption=Space(n)&"顯示文字"要產(chǎn)生滾動效果,可用時鐘(Timer1)控件和Space函數(shù),改變空格數(shù)達到自右向左滾動字幕效果。本章目錄863.5綜合應用例3.3模仿字處理軟件中字符串替換功能本章小節(jié)變量:在程序運行中其存儲的值可以改變
值類型變量、引用類型變量變量聲明Dim變量名[As類型][=初始值]運算符算術運算符、字符串運算符、關系運算符和邏輯運算符名稱空間導入
Imports
名稱空間
數(shù)學函數(shù)使用ImportsSystem.MathShell函數(shù)調(diào)用各種應用程序本章目錄87本章小節(jié)變量:在程序運行中其存儲的值可以改變本章目錄87思考題VB.NET提供了哪些數(shù)值類型?聲明類型時,其類型關鍵字分別是什么?其類型符又是什么?2.說明OptionExplicit的作用。3.什么是值類型變量?什么是引用類型變量?4.怎樣聲明一個符號常量?符號常量與變量的區(qū)別?5.解釋整除與除法運算的區(qū)別?6.將數(shù)字字符串轉(zhuǎn)換成數(shù)值,可以用哪些函數(shù)、方法?本章目錄88思考題VB.NET提供了哪些數(shù)值類型?聲明類型時,其類型關鍵第四章基本的控制結構4.1順序結構4.2選擇結構4.3循環(huán)結構4.4其它輔助控制語句4.5綜合應用4.6程序調(diào)試本章目錄89第四章基本的控制結構4.1順序結構本章目錄894.1順序結構VB.NET也具有結構化程序設計的三種結構,即順序結構、選擇結構、循環(huán)結構,它是程序設計的基礎。順序結構就是各語句按出現(xiàn)的先后次序執(zhí)行。一般的程序設計語言中,順序結構的語句主要是賦值語句、輸入/輸出語句等。在VB.NET中也有賦值語句;而輸入/輸出可以通過文本框控件、標簽控件、InputBox函數(shù)、MsgBox函數(shù)和過程等來實現(xiàn)。本章目錄904.1順序結構VB.NET也具有結構化程序設計的三種結4.1.1賦值語句形式:變量名=表達式計算右邊表達式的值,然后賦給左邊的變量。給變量賦值和設定屬性是VB.NET編程中常見的兩個任務。例如:sngRate!=0.1'sngRate為單精度變量,賦值0.1TextBox1.Text=""'清除文本框的內(nèi)容TextBox1.Text="歡迎使用VB.Net"'文本框顯示字符串
本章目錄914.1.1賦值語句形式:變量名=表達式本章目錄91復合賦值語句復合賦值運算符,其作用簡化程序代碼,提高程序編編譯的效果。語句形式:
變量名復合賦值運算符表達式計算右邊表達式的值,然后與左邊的變量進行相應的運算,最后賦值給變量。復合賦值運算符:+=、-=、*=、\=、/=、^=、&=例如:a*=b+4等價于a=a*(b+4)本章目錄92復合賦值語句復合賦值運算符,其作用簡化程序代碼,提高程序編常用復合賦值語句累加sum+=x等價于sum=sum+x計數(shù)n+=1等價于n=n+1顯示多行信息
利用&=
來實現(xiàn)例如:TextBox1.Text="
VB.NET"&vbCrLfTextBox1.Text&=
"程序設計教程"本章目錄93常用復合賦值語句累加sum+=x等價于賦值語句注意點賦值語句不允許寫成表達式=變量,雖然賦值號與關系運算符等于號都用=表示,VB.NET系統(tǒng)會根據(jù)所處的位置自動判斷符號的意義。
賦值號左邊的變量只能是變量,不能是常量、常數(shù)符號、表達式。下面均為錯誤的賦值語句:Now()=x+y'左邊是表達式(函數(shù))5=sqrt(s)+x+y'左邊是常量本章目錄94賦值語句注意點賦值語句不允許寫成表達式=變量,雖然賦值號InputBox函數(shù)打開一個對話框,等待用戶輸入,返回字符串類型的輸入值。形式:InputBox(提示[,標題][,默認值][,x坐標位置][,y坐標位置])提示項不能省略。若要多行提示,可在每行行末加回車換行VBCrLf。例4.1利用InputBox輸入基本工資和營業(yè)額,按營業(yè)額的5%提成,計算實發(fā)工資并顯示。
4.1.2數(shù)據(jù)輸出和輸入本章目錄代碼說明95InputBox函數(shù)4.1.2數(shù)據(jù)輸出和輸入本章目錄代打開一個信息框,等待用戶選擇一個按按鈕。MsgBox函數(shù)返回所選按鈕的值,MsgBox過程不返回值MsgBox函數(shù)形式:
變量[%]=MsgBox(提示[,按鈕][,標題])MsgBox過程形式:
MsgBox
提示[,按鈕][,標題]按鈕項是一整型表達式,決定信息框按鈕的數(shù)目和類型及出現(xiàn)在信息框上的圖標形式。MsgBox函數(shù)和MsgBox過程本章目錄96打開一個信息框,等待用戶選擇一個按按鈕。MsgBox函數(shù)和MsgBox按鈕設置第3個按鈕為默認512VB.NETDefaultButton3第2個按鈕為默認256VB.NETDefaultButton2第1個按鈕為默認0VB.NETDefaultButton1默認按鈕
信息圖標64VB.NETInformation警告信息圖標48VB.NETExclamation詢問信息圖標32VB.NETQuestion關鍵信息圖標16VB.NETCritical圖標類型
重試、取消按鈕5VB.NETRetryCancel是、否按鈕4VB.NETYesNo是、否、取消按鈕3VB.NETYesNoCancel終止、重試、忽略按鈕2VB.NETAboutRetryIgnore確定、取消按鈕1VB.NETOkCancel確定按鈕0VB.NETOkOnly按鈕數(shù)目描述值內(nèi)部常數(shù)分組本章目錄97MsgBox按鈕設置第3個按鈕為默認512VB.NETDeMsgBox所選按鈕返回值例4.2編一賬號和密碼輸入的檢驗程序,當輸入不正確,如賬號為非數(shù)字字符,密碼不正確等,顯示有關信息,再輸入。VBNo7否VBYes6是VBIgnore5忽略VBRetry4重試VBAbort3終止VBCancel2取消VBOk1確定內(nèi)部常數(shù)返回值被單擊的按鈕NoYesIgnoreRetryAbortCancelOk枚舉值
本章目錄代碼說明98MsgBox所選按鈕返回值例4.2編一賬號和密碼輸入的檢Write、WriteLine方法在調(diào)試窗口輸出信息。Write輸出時不換行、WriteLine輸出時換行。輸出方法:
Debug.WriteLine(表達式)
Debug.Write(表達式)例將例4.1輸出改為如下語句:Debug.WriteLine("本月營業(yè)額為:"&x&"基本工資為:"&jbgz)Debug.Write("本月實發(fā)工資為:"&sfgz)選擇“視圖|其它窗口|輸出”顯示輸出窗口本章目錄99Write、WriteLine方法在調(diào)試窗口輸出信息。W4.2選擇結構計算機要處理的問題往往是復雜多變的,僅采用順序結構是不夠的。必須利用選擇結構等來解決實際應用中的各種問題。VB.NET中提供了多種形式的條件語句來實現(xiàn)選擇結構,有If條件語句和Select情況語句等。它們都是對條件進行判斷,根據(jù)判斷結果,選擇執(zhí)行不同的分支。本章目錄1004.2選擇結構計算機要處理的問題往往是復雜多變的,僅采4.2.1If條件語句1.If…Then語句(單分支結構)
If<表達式>Then
語句塊(可以是一句或多句語句)EndIf或
If<表達式>Then<語句>表達式:關系表達式、邏輯表達式,算術表達式。表達式值按非零為True,零為False進行判斷。該語句的作用是當表達式的值為True,執(zhí)行Then后面的語句塊,否則不做任何操作。本章目錄IF演示1014.2.1If條件語句1.If…Then語句(單分支單分支結構例:已知兩個數(shù)x和y,比較它們的大小,使得x大于y。Ifx<yThent=xx=yy=tEndIf或Ifx<yThent=x:x=y:y=t
簡單If形式無EndIf時,只能是一句語句或語句間用冒號分隔,而且必須在一行上書寫。
本章目錄102單分支結構例:已知兩個數(shù)x和y,比較它們的大小,使得x大于雙分支結構2.If…Then…Else語句If表達式Then
語句塊1Else
語句塊2EndIf或If表達式Then語句1
Else語句2當表達式的值為True時,執(zhí)行Then后面的語句塊1,否則執(zhí)行Else后面的語句塊2本章目錄103雙分支結構2.If…Then…Else語句本章目錄103雙分支結構例計算分段函數(shù)單分支y=cos(x)-x^3+3*x結構實現(xiàn)Ifx<>0Theny=sin(x)+sqr(x*x+1)
Ifx<>0Then
雙分支y=sin(x)+sqr(x*x+1)Else結構實現(xiàn)y=cos(x)-x^3+3*xEndIf本章目錄104雙分支結構例計算分段函數(shù)單分支y=cos(多分支結構3.If…Then…ElseIf語句
If表達式1Then
語句塊1
ElseIf表達式2Then
語句塊2 …
[Else
語句塊n+1]
EndIf作用:根據(jù)不同的表達式值確定執(zhí)行哪個語句塊
本章目錄105多分支結構3.If…Then…ElseIf語句作用:例4.5已知變量ch中存放了一個字符,判斷該字符是字母字符、數(shù)字字符還是其他字符。
IfUCase(ch)>="A"AndUCase(ch)<="Z"ThenMsgBox(ch+“是字母字符”)'考慮大小寫字母
ElseIfch>="0"Andch<="9"Then
'數(shù)字字符MsgBox(ch+"是數(shù)字字符")
Else'除上述字符以外的字符MsgBox(ch+"是其他字符")
End
If不管有幾個分支,依次判斷,當某條件滿足,執(zhí)行相應的語句,其余分支不再執(zhí)行;若條件都不滿足,且有Else子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。
ElseIf不能寫成
ElseIf多分支結構例本章目錄106例4.5已知變量ch中存放了一個字符,判斷該字符是字母字符If語句的嵌套是指If或Else后面的語句塊中又包含If語If表達式1Then
If表達式2Then…EndIf
…EndIfIfx<yThent=x:x=y:y=tIfy<zThent=y:y=z:z=tIfx<yThent=x:x=y:y=tEndIfEndIfIf語句的嵌套例已知x,y,z三個數(shù),使得x>y>z用一個IF語句和一個嵌套的IF語句實現(xiàn)本章目錄107If語句的嵌套是指If或Else后面的語句塊中又包含If語I4.2.2SelectCase語句SelectCase
變量或表達式Case表達式列表1
語句塊1Case表達式列表2
語句塊2 …[CaseElse語句塊n+1]EndSelect表達式列表與變量或表達式的類型必須相同,是下面4種形式之一:表達式例:"A"一組用逗號分隔的枚舉值
2,4,6,8
表達式1To表達式260To100Is關系運算符表達式Is<60本章目錄1084.2.2SelectCase語句SelectSelectCase語句例將例4.5改用SelectCase語句實現(xiàn):
SelectCasech Case"a"To"z","A"To"Z" MsgBox(ch+"是字母字符") Case"0"To"9" MsgBox(ch+"是數(shù)字字符") CaseElse MsgBox(ch+"是其他字符")EndSelect多分支結構,用SelectCase語句比If…Then…ElseIf語句直觀,程序可讀性強。但不是所有的多分支結構均可用SelectCase語句代替If…Then…ElseIf語句。本章目錄109SelectCase語句例將例4.5改用SelectSelectCase語句例例4.7已知坐標點(x,y),判斷其落在哪個象限。代碼一
Ifx>0Andy>0ThenMsgBox("在第一象限")ElseIfx<0Andy>0ThenMsgBox("在第二象限") ElseIfx<0Andy<0ThenMsgBox("在第三象限") ElseIfx>0Andy<0ThenMsgBox("在第四象限") EndIf
代碼二SelectCasex,yCasex>0Andy>0MsgBox(“在第一象限”)Casex<0Andy>0MsgBox(“在第二象限”)Casex<0Andy<0MsgBox(“在第三象限”)Casex>0Andy<0MsgBox(“在第四象限”)EndSelect代碼二錯誤:1.SelectCase后不能出現(xiàn)多個變量;2.Case后不能出現(xiàn)變量及有關運算符。本章目錄110SelectCase語句例例4.7已知坐標點(x,y),4.2.3條件函數(shù)(1)IIf函數(shù)IIf(表達式,表達式為真時的值,表達式為假時的值)IIf函數(shù)是If…Then…Else結構的簡潔表示例如,將x,y中大的數(shù),放入Tmax變量中:Tmax=IIf(x>y,x,y)該語句與如下語句等價
:Ifx>yThenTmax=xElseTmax=y
本章目錄1114.2.3條件函數(shù)(1)IIf函數(shù)本章目錄1114.2.3條件函數(shù)(2)Choose函數(shù)
Choose(整數(shù)表達式,選項列表)根據(jù)表達式的值i,返回選項列表中第i個選項。如果整數(shù)表達式的值越出選項范圍時,返回Null。例根據(jù)Nop的值,得到+、-、×、÷中的某運算符:Op=Choose(Nop,"+","-","×","÷")
例4.8根據(jù)當前日期,顯示今日是星期幾。t=Choose(Weekday(Now),“星期日”,“星期一”,“星期二”,“星期三”,“星期四”,“星期五”,“星期六”)MsgBox("今天是:"&Now&t)
本章目錄1124.2.3條件函數(shù)(2)Choose函數(shù)本章目錄14.3循環(huán)結構計算機最擅長的功能之一就是按規(guī)定的條件,重復執(zhí)行某些操作。例如,按照人口某增長率,對人口增長統(tǒng)計;根據(jù)各課程的學分、績點和學生的成績,統(tǒng)計每個學生的平均績點等。這類問題都可通過循環(huán)結構來方便地實現(xiàn)。VB.NET中提供了兩種類型的循環(huán)語句:一種是計數(shù)循環(huán)語句;另一種是條件型循環(huán)語句。
本章目錄1134.3循環(huán)結構計算機最擅長的功能之一就是按規(guī)定的條件,4.3.1For循環(huán)語句For循環(huán)語句用于控制循環(huán)次數(shù)預知的循環(huán)結構。For循環(huán)變量=初值To終值
[Step步長] 語句塊 [ExitFor] 語句塊Next循環(huán)變量循環(huán)變量必須為數(shù)值型。循環(huán)次數(shù)>0初值<終值=1時,可省略<0初值>終值=0死循環(huán)步長例4.9
計算1~100的奇數(shù)和
本章目錄1144.3.1For循環(huán)語句For循環(huán)語句用于控制循環(huán)次數(shù)For循環(huán)語句循環(huán)流程:(1)循環(huán)變量被賦初值,它僅被賦值一次。(2)判斷循環(huán)變量是否在終值內(nèi),如果是,執(zhí)行循環(huán)體;如果否,結束循環(huán),執(zhí)行Next的下一語句。(3)循環(huán)變量加步長,轉(zhuǎn)(2),繼續(xù)循環(huán)
本章目錄115For循環(huán)語句循環(huán)流程:本章目錄1154.3.2Do…Loop循環(huán)語句Do循環(huán)用于控制循環(huán)次數(shù)未知的循環(huán)結構。形式1:Do{While|Until}<條件>
語句塊[ExitDo語句塊]Loop形式1為先判斷后執(zhí)行,有可能一次也不執(zhí)行;形式2為先執(zhí)行后判斷,至少執(zhí)行一次。形式2:Do
語句塊[ExitDo語句塊]Loop{While|Until}<條件>本章目錄1164.3.2Do…Loop循環(huán)語句Do循環(huán)用于控制循環(huán)次Do…Loop流程本章目錄117Do…Loop流程本章目錄117循環(huán)例題例4.11我國有13億人口,按人口年增長0.8%計算,多少年后我國人口超過26億。解此問題兩種方法,可根據(jù)公式:直接利用標準函數(shù)對數(shù)可求得,但求得的年數(shù)不為整數(shù);也可利用循環(huán)求得。本章目錄代碼說明118循環(huán)例題例4.11我國有13億人口,按人口年增長0.8%計循環(huán)例題例4.12用輾轉(zhuǎn)相除法求兩自然數(shù)的最大公約數(shù)。求最大公約數(shù)的算法思想:(1)對于兩數(shù)m,n,使得m>n(2)m除以n得余數(shù)r例m=14,n=6的最大公約數(shù)Ifm<nThent=m:m=n:n=tr=mmodnDoWhile(r<>0)m=nn=rr=m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)數(shù)據(jù)治理制度與流程實施指南
- GB/T 46983.703-2025光伏組件用材料測試程序第7-3部分:加速壓力測試光伏組件外表面的磨損測試方法
- (一模)湛江市2026年高三普通高考測試(一)地理試卷(含官方答案解析)
- 2026年大理州漾濞縣總工會招聘公益性崗位人員(4人)備考考試試題及答案解析
- 2026浙江寧波開發(fā)投資集團有限公司招聘2人備考考試題庫及答案解析
- 2026福建龍巖新羅區(qū)興業(yè)證券龍巖分公司誠聘3人備考考試題庫及答案解析
- 2026年甘肅白銀市平川區(qū)容通水務有限公司招聘備考考試題庫及答案解析
- 2026山東淄博市博山區(qū)事業(yè)單位招聘綜合類崗位工作人員考試備考試題及答案解析
- 復墾回填點進場管理制度(3篇)
- 新高考學校管理制度(3篇)
- 移動式壓力容器安全技術監(jiān)察規(guī)程(TSG R0005-2011)
- 高速液壓夯實地基技術規(guī)程
- 醫(yī)防融合培訓課件
- 23G409先張法預應力混凝土管樁
- 2025年公司綜合管理部工作總結及2025年工作計劃
- 購買古琴合同范例
- 電力系統(tǒng)調(diào)頻輔助服務市場交易實施細則
- 風電、光伏項目前期及建設手續(xù)辦理流程匯編
- DB41T 1522-2018 可燃氣體和有毒氣體報警儀檢查檢測技術規(guī)范
- QBT 1815-2002 指甲鉗行業(yè)標準
- 醫(yī)療機構崗位聘用合同
評論
0/150
提交評論