版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
VBNet自學經(jīng)典教程完整版演示文稿現(xiàn)在是1頁\一共有612頁\編輯于星期一優(yōu)選VBNet自學經(jīng)典PPT教程完整版現(xiàn)在是2頁\一共有612頁\編輯于星期一第一章VB.NET基礎(chǔ)
1.1VB.NET概述
1.2VB.NET集成開發(fā)環(huán)境1.3使用幫助系統(tǒng)本章目錄現(xiàn)在是3頁\一共有612頁\編輯于星期一1.1VB.NET概述1.1.1VisualBasic的發(fā)展20世紀60年出現(xiàn)Basic語言;20世紀80年代,TrueBasic、QuickBasic和TurboBasic等;1991年Microsoft公司推出VisualBasic1.0,以可視化工具為界面設(shè)計、結(jié)構(gòu)化Basic語言為基礎(chǔ),以事件驅(qū)動為運行機制。從1991年的VB1.0至1998年的VB6.0的多次版本升級,功能更強大、完善,應(yīng)用面更廣;2002年正式發(fā)布VisualBasic.NET。本章目錄現(xiàn)在是4頁\一共有612頁\編輯于星期一1.1.2Microsoft.NET概述什么是.NET?.NET代表了一個集合、一個環(huán)境、一個編程的基本結(jié)構(gòu),作為一個平臺來支持下一代的Internet。.NET也是一個用戶環(huán)境,是一組基本的用戶服務(wù),可以作用于客戶端、服務(wù)器或任何地方。對初學VB的人來說,可以這樣認為,.NET就是VisualStudio.NET。本章目錄現(xiàn)在是5頁\一共有612頁\編輯于星期一VisualStudio.NETWindows應(yīng)用程序ASP.NET程序中間語言(IL)程序(EXE)基礎(chǔ)類庫第一次編譯第二次編譯在不同的CPU上運行VB.NETVJ#.NETVC++.NETVC#.NETVisualStudio.NETCLR本章目錄現(xiàn)在是6頁\一共有612頁\編輯于星期一1.1.3VB.NET特點1引例例1.1簡單的動畫演示。一行文字“歡迎使用VB.NET”在具有背景圖案的窗體中上、下移動。移動方法有兩種:單擊手動按鈕,移動5個像素單位;單擊自動按鈕,按定時器觸發(fā)頻率連續(xù)移動;當內(nèi)容超出窗體范圍時,進行反彈。本章目錄現(xiàn)在是7頁\一共有612頁\編輯于星期一引例根據(jù)要求,用工具箱上的Label、Button、Timer等控件,在窗體上建立控件對象,進行有關(guān)的屬性設(shè)置。
本章目錄現(xiàn)在是8頁\一共有612頁\編輯于星期一引例:編寫事件過程本章目錄現(xiàn)在是9頁\一共有612頁\編輯于星期一
提供了易學易用的應(yīng)用程序集成開發(fā)環(huán)境具有面向?qū)ο蟮目梢暬O(shè)計工具事件驅(qū)動的編程機制支持結(jié)構(gòu)化程序設(shè)計,具有面向?qū)ο蟪绦蛟O(shè)計語言的所有特征具有豐富的數(shù)據(jù)類型、功能強大的類庫強大的數(shù)據(jù)庫功能網(wǎng)絡(luò)功能完備的幫助功能VB.NET功能特點本章目錄現(xiàn)在是10頁\一共有612頁\編輯于星期一1.2VB.NET的集成開發(fā)環(huán)境1.2.1進入VB.NET
啟動VisualStudio.NET“起始頁”選擇“新建項目/打開項目”按鈕
VisualBasic項目Windows應(yīng)用程序本章目錄現(xiàn)在是11頁\一共有612頁\編輯于星期一VB.NET集成開發(fā)環(huán)境本章目錄現(xiàn)在是12頁\一共有612頁\編輯于星期一1.2.2主窗口三種工作模式設(shè)計模式界面的設(shè)計和代碼的編制
運行模式運行應(yīng)用程序
中斷模式暫時中斷程序運行,調(diào)試程序2.菜單欄包括11個下拉菜單3.工具欄本章目錄現(xiàn)在是13頁\一共有612頁\編輯于星期一1.2.3窗體設(shè)計/代碼設(shè)計窗口1.窗體設(shè)計器窗口建立VB.NET應(yīng)用程序的界面(一個應(yīng)用程序可以有多個窗體,通過“項目|添加Windows窗體”命令增加新窗體)。2.代碼設(shè)計窗口專門用來進行代碼設(shè)計,包括各種事件過程、過程和類等源程序代碼的編寫和修改。打開代碼設(shè)計窗口的方法:雙擊窗體、控件或單擊代碼窗口上方的選項卡組對應(yīng)項。本章目錄現(xiàn)在是14頁\一共有612頁\編輯于星期一1.2.4屬性窗口窗體和控件稱為對象,每個對象用一組屬性來描述其外部特征,如顏色、大小等。屬性窗口用于顯示和設(shè)置所選定的對象的屬性。屬性窗口由四部分組成:對象和名稱空間列表框?qū)傩燥@示排列方式
屬性列表框
屬性含義說明本章目錄現(xiàn)在是15頁\一共有612頁\編輯于星期一1.2.5解決方案資源管理器窗口項目一個獨立的編程單位(包含窗體文件及其他一些相關(guān)文件),若干項目組成一個解決方案解決方案可以含有以下類型的文件:解決方案文件(.sln)
可包括用不同語言開發(fā)的項目項目文件(.vbproj)
由引用的組件和代碼模塊組成代碼模塊文件(.vb)
包括窗體文件、類模塊或其他代碼文件本章目錄現(xiàn)在是16頁\一共有612頁\編輯于星期一1.3使用幫助系統(tǒng)
動態(tài)幫助屬性窗口“動態(tài)幫助”標簽卡內(nèi)索引使用上下文相關(guān)的幫助按“F1”鍵網(wǎng)絡(luò)資源通過http:///china/msdn網(wǎng)站,獲得最新、最及時的有關(guān)幫助信息。
本章目錄現(xiàn)在是17頁\一共有612頁\編輯于星期一本章小節(jié)VisualStudio.NET一個支持下一代Internet的平臺VB.NET的三種工作模式
設(shè)計模式、運行模式、中斷模式組成本章目錄解決方案項目組件和代碼模塊項目組件和代碼模塊現(xiàn)在是18頁\一共有612頁\編輯于星期一思考題1.什么是.NET框架?2.簡述VB.NET的特點3.VB.NET有多種類型的窗口,若想在設(shè)計時看到代碼窗口,怎樣操作?4.如何使各窗口顯示或不顯示?5.如果窗口布局搞亂了,如何恢復默認布局?6.解決方案與項目的區(qū)別?本章目錄現(xiàn)在是19頁\一共有612頁\編輯于星期一第二章簡單的VB.NET程序設(shè)計
2.1VB.NET對象的概念2.2建立簡單的應(yīng)用程序2.3窗體和基本控件2.4綜合應(yīng)用本章目錄現(xiàn)在是20頁\一共有612頁\編輯于星期一2.1VisualBasic對象的概念2.1.1對象和類1.對象對象就是日常生活中的某個實在的物體例如,一個人、一輛汽車、一臺電腦。對象都具有各自的特征(屬性)、行為(方法)
。人有身高、體重、聽力等特征;也具有起立、行走、說話、踢足球等行為。在VB.NET中,將反映對象的屬性和行為封裝在一起,是面向?qū)ο缶幊痰幕驹?。本章目錄現(xiàn)在是21頁\一共有612頁\編輯于星期一2.類的概念類
同種對象的集合與抽象,是創(chuàng)建對象實例的模板,包含所創(chuàng)建對象的屬性描述和行為特征的定義。例如,人類是具體人的抽象。每個人有不同的身高、體重等屬性值和不同的行為。VB.NET工具箱中的可視圖標是VB.NET系統(tǒng)設(shè)計好的標準控件類。通過將控件類實例化,得到真正的控件對象。在窗體上畫一個控件,就將類轉(zhuǎn)換為對象,創(chuàng)建了一個控件對象(簡稱控件)。本章目錄現(xiàn)在是22頁\一共有612頁\編輯于星期一例如:工具箱內(nèi)的TextBox是類(它確定了TextBox的屬性、方法和事件)窗體上顯示的是兩個Text對象Text對象Text類本章目錄現(xiàn)在是23頁\一共有612頁\編輯于星期一屬性、事件和方法構(gòu)成對象的三要素1.屬性存放對象的數(shù)據(jù)(決定對象外觀及功能)例如,控件名稱、文本、大小等屬性。對象屬性的設(shè)置方法:
設(shè)計階段利用屬性窗口直接設(shè)置屬性值程序運行時通過語句對象名.屬性名=屬性值
例如:Button1.Text="確定"注意:若屬性只能在設(shè)計階段設(shè)置,在程序運行階段不可改變,稱為只讀屬性。
2.1.2對象的屬性、事件和方法本章目錄現(xiàn)在是24頁\一共有612頁\編輯于星期一事件發(fā)生在對象上的事情同一事件,對不同的對象,會引發(fā)不同的反應(yīng):事件本章目錄教師_鈴聲()
講課EndSub學生_鈴聲()聽講接受知識EndSubVB.NET為對象預(yù)先定義了一系列的事件。例如,單擊Click、獲取焦點GotFocus、按下鍵盤KeyPress等其他人員_鈴聲()可不于響應(yīng)EndSub現(xiàn)在是25頁\一共有612頁\編輯于星期一事件過程應(yīng)用程序處理事件的步驟它針對某一對象并與該對象的一個事件相聯(lián)系應(yīng)用程序設(shè)計的主要工作就是為對象編寫事件過程的代碼。事件過程的形式如下:Sub對象名_事件(對象引用,事件信息)Handles事件處理程序
… 事件過程代碼EndSub對象引用:指向引發(fā)事件的對象事件信息:與事件相關(guān)的信息事件過程本章目錄現(xiàn)在是26頁\一共有612頁\編輯于星期一例2.1
在命令按鈕的Click事件過程,改變按鈕的字體顏色.代碼說明
注意:在代碼窗,自動產(chǎn)生事件過程的模板,不要修改模板的內(nèi)容,只需鍵入過程的代碼。一個動作可能同時發(fā)生多個事件。例如單擊鼠標同時發(fā)生了:Click、MouseDown、MouseUp事件編程時,只要對需要的事件過程編碼,無編碼的事件為空事件,系統(tǒng)就不處理該事件過程。本章目錄現(xiàn)在是27頁\一共有612頁\編輯于星期一事件驅(qū)動程序設(shè)計方式:程序執(zhí)行的先后次序與程序設(shè)計者無關(guān),取決于用戶的操作。VB.NET程序的執(zhí)行步驟:①
啟動應(yīng)用程序,裝載和顯示窗體;②
窗體(或窗體上的控件)等待事件的發(fā)生;③
事件發(fā)生時,執(zhí)行對應(yīng)的事件過程;④
重復執(zhí)行步驟②和③。事件驅(qū)動程序設(shè)計本章目錄現(xiàn)在是28頁\一共有612頁\編輯于星期一方法面向?qū)ο蟮某绦蛟O(shè)計語言,為程序設(shè)計人員提供了一種特殊的過程和函數(shù),稱為方法。方法是面向?qū)ο蟮?,調(diào)用時一定要指明對象。對象方法的調(diào)用格式為:
[對象.]方法[參數(shù)名表]若省略對象,表示當前對象,一般指窗體。例如:Textbox1.Focus此語句使Textbox1控件獲得焦點,光標在本文框內(nèi)閃爍。本章目錄現(xiàn)在是29頁\一共有612頁\編輯于星期一2.2建立簡單的應(yīng)用程序
例2.2編寫一個人民幣與美圓兌換的程序。建立一個應(yīng)用程序分為以下幾步進行:(1)建立用戶界面的對象(2)對象屬性的設(shè)置(3)對象事件過程及編程(4)保存和運行程序本章目錄代碼說明現(xiàn)在是30頁\一共有612頁\編輯于星期一對象事件過程及編程
代碼窗口的對象列表框可顯示窗體所有對象過程列表框列出所選中對象的所有事件例如,在按鈕Button2的Click事件加入代碼:SubButton2_Click(ByValsenderAsSystem.Object,_ByValeAsSystem.EventArgs)HandlesButton2.ClickTextBox1.Text=Val(TextBox3.Text)*Val(TextBox2.Text)EndSubVal()函數(shù)將數(shù)字字符轉(zhuǎn)換成數(shù)值型
本章目錄現(xiàn)在是31頁\一共有612頁\編輯于星期一保存程序和文件組成
程序存盤后將建立一個文件夾,包含如下內(nèi)容:(1)xxx.sln項目關(guān)聯(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)生的信息本章目錄現(xiàn)在是32頁\一共有612頁\編輯于星期一2.3窗體和基本控件2.3.1通用屬性
屬性設(shè)置兩種方式:通過屬性窗口設(shè)置在代碼設(shè)計窗口通過代碼來設(shè)置
在VB.NET中,屬性的類型有:基本數(shù)據(jù)類型枚舉類型結(jié)構(gòu)類型用代碼設(shè)置時,需要用不同方式表示不同的類型本章目錄現(xiàn)在是33頁\一共有612頁\編輯于星期一2.3.1通用屬性(1)Name所有對象都具有的屬性,表示所創(chuàng)建的對象名稱。在程序中通過對象名稱來引用對象,不會顯示在窗體上。(2)Text用于在窗體上顯示對象的文本TextBox控件的Text還可以獲取輸入信息本章目錄現(xiàn)在是34頁\一共有612頁\編輯于星期一(3)
控件布局屬性控件布局由Location、Size結(jié)構(gòu)來實現(xiàn),它們各有一對整數(shù)來表示,整數(shù)單位為像素。Location控件左上角位置,Size控件大小例如,命令按鈕控件布局Button1.Location=NewPoint(88,48)Button1.Size=NewSize(80,32)也可用Left、Top定位;用Width和Height來表示控件的寬度和高度。本章目錄等效的語句設(shè)置:
Button1.Left=88Button1.Top=48Button1.Width=80Button1.Height=32
現(xiàn)在是35頁\一共有612頁\編輯于星期一(4)Font屬性值是Font類的對象,一般通過Font屬性對話框設(shè)置若在程序代碼中需要改變文本的外觀,則應(yīng)通過New創(chuàng)建Font對象來改變字體。例如:Label1.Font=NewSystem.Drawing.Font("Arial",10)本章目錄現(xiàn)在是36頁\一共有612頁\編輯于星期一(5)ForeColor、BackColor顏色屬性
ForeColor控件正文前景色
BackColor背景色(6)Cursor指示鼠標光標圖像設(shè)置值是一個Cursors枚舉類型的枚舉值。若要用戶定義自己的指針圖標,可通過如下語句實現(xiàn):對象名.Cursor=NewSystem.Windows.Forms.Cursor("圖標文件名")
本章目錄現(xiàn)在是37頁\一共有612頁\編輯于星期一(7)Dock控件放置靠窗體邊框的位置,屬性值是DockStyle枚舉類型,有六個枚舉值(8)Enabled、Visible控件的有效、可見性本章目錄(9)TabIndex按Tab鍵時,焦點在各個控件移動的順序EnabledVisibleTrue允許用戶操作程序運行時控件可見False禁止用戶操作運行時控件不可見現(xiàn)在是38頁\一共有612頁\編輯于星期一2.3.2窗體窗體是一塊畫布,是所有控件的容器,可以根據(jù)需要利用工具箱上的控件在窗體上畫界面。1.主要屬性本章目錄現(xiàn)在是39頁\一共有612頁\編輯于星期一窗體-屬性(1)MaxButton、MinButton設(shè)置為True,窗體上有最大(小)化按鈕;為False時無最大(小)化按鈕(2)Icon、ControlBox窗體圖標、控制菜單ControlBox屬性為True,窗體上有控制菜單框;為False時無控制菜單(系統(tǒng)將MaxButton和MinButton自動設(shè)置為False)(3)BackgroundImage窗體背景圖案(4)FormBorderStyle窗體的邊框類型本章目錄現(xiàn)在是40頁\一共有612頁\編輯于星期一窗體-事件最常用的事件有Click、DblClick和LoadLoad事件窗體裝入內(nèi)存時觸發(fā)(應(yīng)用程序啟動時自動執(zhí)行該事件),常用來在啟動時對屬性和變量初始化。例2.3
編寫三個事件過程,要求如下:啟動窗體,在標題欄顯示“裝入窗體”,并將#bmp作為背景圖平鋪窗體、窗體邊框為Fixed3D;單擊窗體,標題欄顯示對應(yīng)的文字、裝入tongji-2.bmp圖片大小為264×256,要求圖片正好充滿窗體。雙擊窗體,標題欄顯示對應(yīng)的文字、窗體無最大化和最小化按鈕,清除裝入的圖片。代碼說明本章目錄現(xiàn)在是41頁\一共有612頁\編輯于星期一窗體-方法使用方法的語法形式:
[對象.]方法[參數(shù)列表]窗體方法主要有ShowDialog
、Show、Hide等,主要用于多窗體的顯示和隱藏等例如:Me.Hide本章目錄現(xiàn)在是42頁\一共有612頁\編輯于星期一2.3.3標簽-屬性標簽用來顯示文本信息(不能輸入)除Name、Font、Size、Location、Enable等屬性外,其它主要屬性:(1)Text、TextAlign:設(shè)置顯示的文本、文本的對齊方式TextAlign屬性是枚舉類型,提供標簽控件上文本的9種對齊方式本章目錄現(xiàn)在是43頁\一共有612頁\編輯于星期一(2)BackColor背景色(默認與窗體背景相同)。若要以透明方式顯示,需要設(shè)置Color枚舉類型的Transparent。(3)BorderStyle
標簽控件邊框樣式
None控件周圍沒有邊框(默認值)FixedSingle控件帶有單邊框
Fixed3D控件帶有立體邊框(4)AutoSize
控件是否能自動調(diào)整大小當值為False,保持控件原設(shè)計時的大小,正文若太長則顯示其中的一部分。本章目錄現(xiàn)在是44頁\一共有612頁\編輯于星期一(5)Image、ImageAlign
設(shè)置控件的背景圖案和圖案對齊方式ImageAlign屬性與TextAlign類似通過代碼設(shè)置圖案:標簽名.Image=Image.FromFile("圖片名")例2.4在4個標簽中存放4個方向的“手指”圖片,當單擊某方向時,利用“Dock”屬性定位第5個標簽、并顯示相關(guān)信息。
代碼說明本章目錄現(xiàn)在是45頁\一共有612頁\編輯于星期一2.3.4文本框文本框是一個文本編輯區(qū)域,可以在該區(qū)域輸入、編輯、修改和顯示正文內(nèi)容。(1)Text
顯示或輸入的正文內(nèi)容(2)Maxlength
設(shè)置文本框可輸入的文字最大長度。默認值為0,表示可以輸入任意長字符串。注意:在VB.NET中字符長度以字為單位,也就是一個西文字符與一個漢字都是一個字,長度為1。
本章目錄現(xiàn)在是46頁\一共有612頁\編輯于星期一(3)MultiLine
多行屬性設(shè)置為True時,文本框可以輸入或顯示多行正文,同時具有文字處理器的自動換行功能,按Enter鍵可插入一空行。(4)ScrollBars
滾動條屬性
None無滾動條
Horizontal水平滾動條
Vertical垂直滾動條
Both同時加水平和垂直滾動條當MultiLine為True時,ScrollBars才有效本章目錄現(xiàn)在是47頁\一共有612頁\編輯于星期一(5)PassWordChar
設(shè)置顯示文本的替代符。例如,當設(shè)置為“*”,則在文本框輸入的內(nèi)容均以“*”顯示,而存儲的值是用戶輸入的原文。一般用于設(shè)置口令的輸入。當MultiLine為True時,該屬性不起作用,密碼不允許多行。(6)ReadOnly指定文本控件是否可被編輯,默認值為False(可編輯),當設(shè)置為True時,文本控件相當于標簽控件的作用。
本章目錄現(xiàn)在是48頁\一共有612頁\編輯于星期一(7)文本內(nèi)容進行選擇操作SelectionStart選定的正文開始位置SelectionLength選定的正文長度SelectedText選定的正文內(nèi)容設(shè)置SelectionStart和SelectionLength屬性后,SelectedText會自動存放設(shè)定的正文例2.5
利用屬性實現(xiàn)對文本信息的剪切、拷貝、粘貼等功能。
本章目錄代碼說明現(xiàn)在是49頁\一共有612頁\編輯于星期一文本框-事件(1)TextChanged事件當Text屬性值發(fā)生改變時引發(fā)該事件例在文本框每輸入一個字符就引發(fā)一次事件(2)KeyPress事件按下并且釋放鍵盤上的一個鍵時,引發(fā)焦點所在控件的KeyPress事件,所按鍵的值存放在參數(shù)e.KeyChar中例對回車的判斷Asc(e.KeyChar)=13本章目錄現(xiàn)在是50頁\一共有612頁\編輯于星期一(3)LostFocus事件對象失去焦點時發(fā)生LostFocus事件該事件主要是用來對數(shù)據(jù)進行驗證和確認,常用于檢查Text屬性的內(nèi)容。(4)GotFocus事件GotFocus事件與LostFocus事件相反,當一個對象獲得焦點時發(fā)生本章目錄現(xiàn)在是51頁\一共有612頁\編輯于星期一文本框-方法文本框最有用的方法是Focus,把光標移到指定的文本框中。其形式如下:
[對象.]FocusFocus還可以用于如CheckBox、Button、ListBox、ComboBox等控件。例2.6對輸入的數(shù)據(jù)進行合法性檢驗,過濾不合法的數(shù)據(jù)。本章目錄代碼說明現(xiàn)在是52頁\一共有612頁\編輯于星期一2.3.5命令按鈕用于程序運行時執(zhí)行相應(yīng)的事件1.屬性(1)Text命令按鈕上顯示的文字(2)FlatStyle按鈕的外觀該屬性有4個枚舉值:
Flat以平面顯示按鈕
Popup鼠標在按鈕上以Flat形式顯示,否則以Standand顯示
Standand以三維效果顯示(默認)System由操作系統(tǒng)決定外觀形式本章目錄現(xiàn)在是53頁\一共有612頁\編輯于星期一命令按鈕(3)Image、BackGroundImage當FlatStyle屬性值設(shè)置為非System的值時,則可以使用Image、BackGroundImage屬性為按鈕設(shè)置圖形或背景圖,顯示不同的圖形文件(.bmp和.ico)。通常情況使用Image屬性。(4)TextAlign、ImageAlign設(shè)置文本、圖形在按鈕上的對齊方式2.事件
命令按鈕一般接收Click事件
本章目錄現(xiàn)在是54頁\一共有612頁\編輯于星期一2.4綜合應(yīng)用例2.7建立一個類似記事本的應(yīng)用程序,提供:(1)剪切、復制和粘貼的編輯操作(2)字體大小的格式設(shè)置分析:(1)建立一個文本框輸入文本,文本框應(yīng)該有滾動條,為了便于調(diào)試,程序運行時文本框有初始值。(2)利用文本框的SelectedText屬性實現(xiàn)“剪切、復制和粘貼”的編輯操作;(3)“格式”設(shè)置利用Font對象實現(xiàn)。代碼說明本章目錄現(xiàn)在是55頁\一共有612頁\編輯于星期一本章小節(jié)類是同種對象的集合與抽象,包含所創(chuàng)建對象的屬性描述和行為特征的定義,是創(chuàng)建對象實例的模板。對象三要素:屬性、事件、方法屬性的類型:基本數(shù)據(jù)類型、枚舉類型、結(jié)構(gòu)類型窗體是所有控件的容器基本控件標簽、文本框、命令按鈕本章目錄現(xiàn)在是56頁\一共有612頁\編輯于星期一思考題1.什么是類?什么是對象?什么是事件過程?2.屬性和方法的區(qū)別是什么?3.如何建立一個完整的應(yīng)用程序?4.如何在文本框內(nèi)顯示多行文本?5.如何使對象獲得焦點?6.如何在命令按鈕上設(shè)置圖形?本章目錄現(xiàn)在是57頁\一共有612頁\編輯于星期一第三章VB.NET語言基礎(chǔ)
3.1變量、常量與數(shù)據(jù)類型3.2運算符和表達式3.3常用函數(shù)3.4程序結(jié)構(gòu)和編碼規(guī)則3.5綜合應(yīng)用本章目錄現(xiàn)在是58頁\一共有612頁\編輯于星期一3.1變量、常量和數(shù)據(jù)類型3.1.1變量概述
變量在程序運行中其存儲的值可以改變命名規(guī)則:必須以字母或漢字開頭,由字母、漢字、數(shù)字或下劃線組成,長度小于等于255個字符不能使用VB.NET中的關(guān)鍵字
VB.NET不區(qū)分變量名的大小寫,一般變量名首字母用大寫,其余用小寫字母表示;常量全部用大寫字母表示本章目錄現(xiàn)在是59頁\一共有612頁\編輯于星期一3.1.1變量概述值類型和引用類型的變量
值類型變量直接存放數(shù)據(jù)。每個值類型變量有它自己的數(shù)據(jù)拷貝,因此對一個值類型變量的操作不能影響其他的變量。引用類型變量并不真的包含數(shù)據(jù),存放的是指向其他數(shù)據(jù)的內(nèi)存地址的指針,也就是把數(shù)據(jù)值所在的地址作為引用變量的值。該種變量對象的引用簡稱為賦值或存儲。字符串、數(shù)組和類是引用類型的變量。本章目錄現(xiàn)在是60頁\一共有612頁\編輯于星期一變量概述x是值類型變量,存放的值為1234;
s是引用類型變量,指向"VB.NET"的一個引用
本章目錄現(xiàn)在是61頁\一共有612頁\編輯于星期一3.1.2數(shù)據(jù)類型本章目錄現(xiàn)在是62頁\一共有612頁\編輯于星期一3.1.3變量聲明1.用Dim語句顯式聲明變量
Dim
變量名[As類型][=初始值]As部分缺省,創(chuàng)建的變量為Object類型初始值子句,表示給聲明的變量賦值一條Dim語句可同時定義多個變量。多個相同類型變量,可用一個As來指定(前面幾個由逗號分隔),這時不能給變量賦初值。例如:Dimm,n,jAsInteger,x,yAsSingle,k
k為Object類型
本章目錄現(xiàn)在是63頁\一共有612頁\編輯于星期一變量聲明2.隱式聲明默認狀態(tài)下,系統(tǒng)要求對使用的變量都顯式聲明,當使用沒有聲明的變量時,該變量名下有綠色曲線(表示語法錯)。若對變量不聲明而直接使用,稱為隱式聲明。則需要在模塊中所有程序代碼的最前面加語句:
OptionExplicitOff
對初學者,最好變量加以顯式聲明,這樣有助于程序的查錯。本章目錄現(xiàn)在是64頁\一共有612頁\編輯于星期一3.1.4常量常量是在程序運行中不變的量,VB.NET中有三種常量:直接常量其常數(shù)值直接反映了其類型符號常量用戶聲明,便于程序閱讀或修改Const符號常量名[As類型]=表達式系統(tǒng)常量系統(tǒng)提供許多內(nèi)部常量和枚舉例如:vbCrLf回車/換行組合符枚舉如控件的顏色、邊框線型等本章目錄現(xiàn)在是65頁\一共有612頁\編輯于星期一3.2運算符和表達式和其他語言一樣,VB.NET中也具有豐富的運算符,通過運算符和操作數(shù)組合成表達式,實現(xiàn)程序編制中所需的大量操作。運算符是表示實現(xiàn)某種運算的符號。VB.NET中的運算符可分算術(shù)運算符、字符串運算符、關(guān)系運算符和邏輯運算符四類。本章目錄現(xiàn)在是66頁\一共有612頁\編輯于星期一3.2.1算術(shù)運算符例:5+10mod10\9/3+2^2結(jié)果:10
注意:對算術(shù)運算符兩邊的操作數(shù)應(yīng)是數(shù)值型,若是數(shù)字字符或邏輯型,則自動轉(zhuǎn)換成數(shù)值類型后再運算。例如:30-True結(jié)果是31,邏輯量True轉(zhuǎn)為數(shù)值-1,F(xiàn)alse轉(zhuǎn)為數(shù)值0False+10+"4"結(jié)果是14本章目錄現(xiàn)在是67頁\一共有612頁\編輯于星期一字符串運算符&
兩旁的操作數(shù)可任意,轉(zhuǎn)換成字符型后再連接+
兩旁的操作數(shù)應(yīng)均為字符型;若為數(shù)值型則進行算術(shù)加運算;若一個為數(shù)字字符,另一個為數(shù)值,則自動將數(shù)字字符轉(zhuǎn)換為數(shù)值后進行算術(shù)加;若一個為非數(shù)字字符型,另一個為數(shù)值型,則出錯。例如:
操作結(jié)果操作結(jié)果"ab"&123"ab123" "ab"
+12出錯"12"&456"12456" "12"+
456468"12"&True"12True" "12"+
True11注意:在變量后使用運算符&時,變量與&間應(yīng)加一個空格
本章目錄現(xiàn)在是68頁\一共有612頁\編輯于星期一關(guān)系運算符關(guān)系運算符是雙目運算符,作用是對兩個操作數(shù)進行大小比較,若關(guān)系成立,則返回True,否則返回False。操作數(shù)可以是數(shù)值型、字符型。本章目錄運算符例結(jié)果="ABCDE"="ABR"False>"ABCDE">"ABR"False>="bc">="abcde
"True<23<3False<="23"<"3"
True<>"abc"<>"abcde
"True現(xiàn)在是69頁\一共有612頁\編輯于星期一邏輯運算符邏輯運算符除Not是單目運算符外,其余都是雙目運算符,作用是將操作數(shù)進行邏輯運算,結(jié)果是邏輯值True或False。本章目錄現(xiàn)在是70頁\一共有612頁\編輯于星期一3.2.2表達式1.組成
變量、常量、函數(shù)、運算符和圓括號2.書寫規(guī)則運算符不能相鄰例a+-b是錯誤的乘號不能省略例x乘以y應(yīng)寫成:x*y
括號必須成對出現(xiàn)(均使用圓括號)
表達式從左到右在同一基準上書寫,無高低、大小3.不同數(shù)據(jù)類型的轉(zhuǎn)換運算結(jié)果的數(shù)據(jù)類型向精度高的數(shù)據(jù)類型靠
Integer<Long<Single<Double<Currency4.優(yōu)先級算術(shù)運算符>=字符運算符>關(guān)系運算符>邏輯運算本章目錄現(xiàn)在是71頁\一共有612頁\編輯于星期一表達式書寫舉例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)本章目錄現(xiàn)在是72頁\一共有612頁\編輯于星期一3.3常用函數(shù)3.3.1名稱空間和類VB.NET通過名稱空間把類庫劃分為不同的組,將功能相近的類劃到相同的名稱空間。有了名稱空間,可以方便地組織應(yīng)用程序要使用的各個類。(1)VB.NET函數(shù)庫的名稱空間和模塊Conversion轉(zhuǎn)換函數(shù)DateAndTime日期和時間函數(shù)Strings字符串函數(shù)VbMath隨機函數(shù)本章目錄現(xiàn)在是73頁\一共有612頁\編輯于星期一3.3.1名稱空間和類(2)基礎(chǔ)類庫中的名稱空間和類類別名稱空間說明
基本數(shù)據(jù)類型System基本的和經(jīng)常使用的數(shù)據(jù)類型、事件和事件處理程序、接口、屬性和異常處理等編程基礎(chǔ)System.CollectionsSystem.IO對象集合文件管理及其輸入/輸出圖形System.DrawingSystem.Windows.FormsGDI+Windows的應(yīng)用程序的豐富用戶數(shù)據(jù)庫System.DataADO.NET的各種對象本章目錄現(xiàn)在是74頁\一共有612頁\編輯于星期一名稱空間的使用引用名稱空間的方法:
項目引用新建一個項目時,VB.NET根據(jù)所建項目類型,自動導入部分名稱空間的引用直接引用給出名稱空間的全名,就可訪問其中的任一個類及其各項內(nèi)容
例使用Math類開方函數(shù)sqrt:
Label1.Text=system.Math.sqrt(100)
Imports語句導入在代碼中就可直接使用名稱空間的類或成員。導入語句的格式:
Imports
名稱空間
本章目錄現(xiàn)在是75頁\一共有612頁\編輯于星期一3.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)取絕對值A(chǔ)bs(N)結(jié)果實例含義函數(shù)名本章目錄現(xiàn)在是76頁\一共有612頁\編輯于星期一數(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)]結(jié)果實例含義函數(shù)名Rnd函數(shù)返回0和1(包括0但不包括1)之間的雙精度隨機數(shù).每次運行時,要產(chǎn)生不同序列的隨機數(shù),先執(zhí)行Randomize語句。產(chǎn)生a~b的之間的隨機整數(shù):Int(Rnd*(b-a)+a)本章目錄現(xiàn)在是77頁\一共有612頁\編輯于星期一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碼值A(chǔ)sc(C)結(jié)果實例功能
函數(shù)名本章目錄現(xiàn)在是78頁\一共有612頁\編輯于星期一轉(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)換前的結(jié)果。例如表達式:Val("-123.45ty3")結(jié)果為-123.45。(4)CDdate函數(shù)將以日期型表達式轉(zhuǎn)換成日期類型。例如表達式:CDate("2005/5/12")結(jié)果為日期類型VB.NET中還有其他類型轉(zhuǎn)換函數(shù),例如,CInt、CBool、CSng、CStr等,詳細例子查閱幫助功能。本章目錄現(xiàn)在是79頁\一共有612頁\編輯于星期一3.3.4字符串函數(shù)字符串編碼VB.NET中字符串長度是以字(習慣稱字符)為單位,每個西文字符和每個漢字都作為一個字,占兩個字節(jié)。這是因為VB.NET采用Unicode(國際標準化組織ISO字符標準)來存儲和操作字符串。VB.NET中字符串處理有兩種方式:保留和更新了VB6.0版本提供的函數(shù);另一種是用System.String類的成員(函數(shù))
本章目錄現(xiàn)在是80頁\一共有612頁\編輯于星期一字符串函數(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])結(jié)果實例說明
函數(shù)名本章目錄現(xiàn)在是81頁\一共有612頁\編輯于星期一字符串函數(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)結(jié)果實例說明
函數(shù)名本章目錄現(xiàn)在是82頁\一共有612頁\編輯于星期一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#)本章目錄現(xiàn)在是83頁\一共有612頁\編輯于星期一3.3.6Shell函數(shù)Shell函數(shù)可調(diào)用各種應(yīng)用程序。格式如下:
Shell(命令字符串[,窗口類型])命令字符串為要執(zhí)行的應(yīng)用程序名(包括路徑),必須是可執(zhí)行文件(.com、.exe、.bat)。窗口類型表示執(zhí)行應(yīng)用程序的窗口狀態(tài),0~4,6的整型數(shù)值,1表示正常窗口狀態(tài)。函數(shù)調(diào)用成功返回一個任務(wù)標識ID,不成功,則返回0。提示:如果不知道應(yīng)用程序的路徑名,可用Start命令啟動程序例
i=Shell(start
&"calc.exe")本章目錄現(xiàn)在是84頁\一共有612頁\編輯于星期一3.4程序結(jié)構(gòu)和編碼規(guī)則本章目錄現(xiàn)在是85頁\一共有612頁\編輯于星期一程序結(jié)構(gòu)和編碼規(guī)則編碼規(guī)則(1)VB.NET代碼不區(qū)分字母的大小寫關(guān)鍵字,首字母自動轉(zhuǎn)換成大寫,其余字母轉(zhuǎn)換成小寫。對于用戶自定義的變量、過程名,以第一次定義的為準,以后輸入的自動向首次定義的形式轉(zhuǎn)換。(2)語句書寫自由一行上可書寫多句語句(用冒號分隔),一行最多255個字符。單行語句可分若干行書寫,在本行后加入續(xù)行符(空格和下劃線)。本章目錄現(xiàn)在是86頁\一共有612頁\編輯于星期一3.5綜合應(yīng)用例3.3
模仿字處理軟件中字符串替換功能和字幕滾動。設(shè)計思路:利用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ù)達到自右向左滾動字幕效果。本章目錄現(xiàn)在是87頁\一共有612頁\編輯于星期一本章小節(jié)變量:在程序運行中其存儲的值可以改變
值類型變量、引用類型變量變量聲明Dim變量名
[As類型][=初始值]運算符算術(shù)運算符、字符串運算符、關(guān)系運算符和邏輯運算符名稱空間導入
Imports
名稱空間
數(shù)學函數(shù)使用ImportsSystem.MathShell函數(shù)調(diào)用各種應(yīng)用程序本章目錄現(xiàn)在是88頁\一共有612頁\編輯于星期一思考題VB.NET提供了哪些數(shù)值類型?聲明類型時,其類型關(guān)鍵字分別是什么?其類型符又是什么?2.說明OptionExplici的作用。3.什么是值類型變量?什么是引用類型變量?4.怎樣聲明一個符號常量?符號常量與變量的區(qū)別?5.解釋整除與除法運算的區(qū)別?6.將數(shù)字字符串轉(zhuǎn)換成數(shù)值,可以用哪些函數(shù)、方法?本章目錄現(xiàn)在是89頁\一共有612頁\編輯于星期一第四章基本的控制結(jié)構(gòu)4.1順序結(jié)構(gòu)4.2選擇結(jié)構(gòu)4.3循環(huán)結(jié)構(gòu)4.4其它輔助控制語句4.5綜合應(yīng)用4.6程序調(diào)試本章目錄現(xiàn)在是90頁\一共有612頁\編輯于星期一4.1順序結(jié)構(gòu)VB.NET也具有結(jié)構(gòu)化程序設(shè)計的三種結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),它是程序設(shè)計的基礎(chǔ)。順序結(jié)構(gòu)就是各語句按出現(xiàn)的先后次序執(zhí)行。一般的程序設(shè)計語言中,順序結(jié)構(gòu)的語句主要是賦值語句、輸入/輸出語句等。在VB.NET中也有賦值語句;而輸入/輸出可以通過文本框控件、標簽控件、InputBox函數(shù)、MsgBox函數(shù)和過程等來實現(xiàn)。本章目錄現(xiàn)在是91頁\一共有612頁\編輯于星期一4.1.1賦值語句形式:變量名=表達式計算右邊表達式的值,然后賦給左邊的變量。給變量賦值和設(shè)定屬性是VB.NET編程中常見的兩個任務(wù)。例如:sngRate!=0.1'sngRate為單精度變量,賦值0.1TextBox1.Text=""'清除文本框的內(nèi)容TextBox1.Text="歡迎使用VB.Net"'文本框顯示字符串
本章目錄現(xiàn)在是92頁\一共有612頁\編輯于星期一復合賦值語句復合賦值運算符,其作用簡化程序代碼,提高程序編編譯的效果。語句形式:
變量名復合賦值運算符表達式計算右邊表達式的值,然后與左邊的變量進行相應(yīng)的運算,最后賦值給變量。復合賦值運算符:+=、-=、*=、\=、/=、^=、&=例如:a*=b+4等價于
a=a*(b+4)本章目錄現(xiàn)在是93頁\一共有612頁\編輯于星期一常用復合賦值語句累加sum+=x等價于sum=sum+x計數(shù)n+=1等價于n=n+1顯示多行信息利用&=
來實現(xiàn)例如:TextBox1.Text="
VB.NET"&vbCrLfTextBox1.Text&=
"程序設(shè)計教程"本章目錄現(xiàn)在是94頁\一共有612頁\編輯于星期一賦值語句注意點
賦值語句不允許寫成表達式=變量,雖然賦值號與關(guān)系運算符等于號都用=表示,VB.NET系統(tǒng)會根據(jù)所處的位置自動判斷符號的意義。
賦值號左邊的變量只能是變量,不能是常量、常數(shù)符號、表達式。下面均為錯誤的賦值語句:Now()=x+y'左邊是表達式(函數(shù))5=sqrt(s)+x+y'左邊是常量本章目錄現(xiàn)在是95頁\一共有612頁\編輯于星期一InputBox函數(shù)打開一個對話框,等待用戶輸入,返回字符串類型的輸入值。形式:InputBox(提示[,標題][,默認值][,x坐標位置][,y坐標位置])提示項不能省略。若要多行提示,可在每行行末加回車換行VBCrLf。例4.1利用InputBox輸入基本工資和營業(yè)額,按營業(yè)額的5%提成,計算實發(fā)工資并顯示。
4.1.2數(shù)據(jù)輸出和輸入本章目錄代碼說明現(xiàn)在是96頁\一共有612頁\編輯于星期一打開一個信息框,等待用戶選擇一個按按鈕。MsgBox函數(shù)返回所選按鈕的值,MsgBox過程不返回值MsgBox函數(shù)形式:
變量[%]=MsgBox(提示[,按鈕][,標題])MsgBox過程形式:
MsgBox
提示[,按鈕][,標題]按鈕項是一整型表達式,決定信息框按鈕的數(shù)目和類型及出現(xiàn)在信息框上的圖標形式。MsgBox函數(shù)和MsgBox過程本章目錄現(xiàn)在是97頁\一共有612頁\編輯于星期一MsgBox按鈕設(shè)置第3個按鈕為默認512VB.NETDefaultButton3第2個按鈕為默認56VB.NETDefaultButton2第1個按鈕為默認0VB.NETDefaultButton1默認按鈕
信息圖標64VB.NETInformation警告信息圖標48VB.NETExclamation詢問信息圖標32VB.NETQuestion關(guān)鍵信息圖標16VB.NETCritical圖標類型
重試、取消按鈕5VB.NETRetryCancel是、否按鈕4VB.NETYesNo是、否、取消按鈕3VB.NETYesNoCancel終止、重試、忽略按鈕2VB.NETAboutRetryIgnore確定、取消按鈕1VB.NETOkCancel確定按鈕0VB.NETOkOnly按鈕數(shù)目描述值內(nèi)部常數(shù)分組本章目錄現(xiàn)在是98頁\一共有612頁\編輯于星期一MsgBox所選按鈕返回值例4.2編一賬號和密碼輸入的檢驗程序,當輸入不正確,如賬號為非數(shù)字字符,密碼不正確等,顯示有關(guān)信息,再輸入。VBNo7否VBYes6是VBIgnore5忽略VBRetry4重試VBAbort3終止VBCancel2取消VBOk1確定內(nèi)部常數(shù)返回值被單擊的按鈕NoYesIgnoreRetryAbortCancelOk枚舉值
本章目錄代碼說明現(xiàn)在是99頁\一共有612頁\編輯于星期一Write、WriteLine方法在調(diào)試窗口輸出信息。Write輸出時不換行、WriteLine輸出時換行。輸出方法:
Debug.WriteLine(表達式)
Debug.Write(表達式)例將例4.1輸出改為如下語句:Debug.WriteLine("本月營業(yè)額為:"&x&"基本工資為:"&jbgz)Debug.Write("本月實發(fā)工資為:"&sfgz)選擇“視圖|其它窗口|輸出”顯示輸出窗口本章目錄現(xiàn)在是100頁\一共有612頁\編輯于星期一日期輸出控制常用日期和時間格式符
顯示小時(0~23),hh個位前加0h在h后顯示分(0~59),mm個位前加0m顯示秒(0~59),ss個位前加0s顯示完整長日期(yyyy年m月d日)dddddd顯示4位數(shù)年份,yy為2位數(shù)年份yyyy顯示月份,mm個位前加0m星期為數(shù)字(1是星期日)w顯示日期,dd個位前加0d作用符號本章目錄現(xiàn)在是101頁\一共有612頁\編輯于星期一4.2選擇結(jié)構(gòu)計算機要處理的問題往往是復雜多變的,僅采用順序結(jié)構(gòu)是不夠的。必須利用選擇結(jié)構(gòu)等來解決實際應(yīng)用中的各種問題。VB.NET中提供了多種形式的條件語句來實現(xiàn)選擇結(jié)構(gòu),有If條件語句和Select情況語句等。它們都是對條件進行判斷,根據(jù)判斷結(jié)果,選擇執(zhí)行不同的分支。本章目錄現(xiàn)在是102頁\一共有612頁\編輯于星期一4.2.1If條件語句1.If…Then語句(單分支結(jié)構(gòu))
If<表達式>Then
語句塊(可以是一句或多句語句)
EndIf或
If<表達式>Then<語句>表達式:關(guān)系表達式、邏輯表達式,算術(shù)表達式。表達式值按非零為True,零為False進行判斷。該語句的作用是當表達式的值為True,執(zhí)行Then后面的語句塊,否則不做任何操作。本章目錄IF演示現(xiàn)在是103頁\一共有612頁\編輯于星期一單分支結(jié)構(gòu)例:已知兩個數(shù)x和y,比較它們的大小,使得x大于y。
Ifx<yThent=xx=yy=tEndIf或Ifx<yThent=x:x=y:y=t
簡單If形式無EndIf時,只能是一句語句或語句間用冒號分隔,而且必須在一行上書寫。
本章目錄現(xiàn)在是104頁\一共有612頁\編輯于星期一雙分支結(jié)構(gòu)2.If…Then…Else語句If表達式
Then
語句塊1Else
語句塊2EndIf或If表達式
Then
語句1
Else
語句2當表達式的值為True時,執(zhí)行Then后面的語句塊1,否則執(zhí)行Else后面的語句塊2本章目錄現(xiàn)在是105頁\一共有612頁\編輯于星期一雙分支結(jié)構(gòu)例計算分段函數(shù)
單分支
y=cos(x)-x^3+3*x結(jié)構(gòu)實現(xiàn)Ifx<>0Theny=sin(x)+sqr(x*x+1)
Ifx<>0Then
雙分支
y=sin(x)+sqr(x*x+1)Else結(jié)構(gòu)實現(xiàn)
y=cos(x)-x^3+3*xEndIf本章目錄現(xiàn)在是106頁\一共有612頁\編輯于星期一多分支結(jié)構(gòu)3.If…Then…ElseIf語句
If表達式1Then
語句塊1
ElseIf表達式2Then
語句塊2 …
[Else
語句塊n+1]
EndIf作用:根據(jù)不同的表達式值確定執(zhí)行哪個語句塊
本章目錄現(xiàn)在是107頁\一共有612頁\編輯于星期一例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í)行相應(yīng)的語句,其余分支不再執(zhí)行;若條件都不滿足,且有Else子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。
ElseIf不能寫成
ElseIf多分支結(jié)構(gòu)例本章目錄現(xiàn)在是108頁\一共有612頁\編輯于星期一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)本章目錄現(xiàn)在是109頁\一共有612頁\編輯于星期一4.2.2SelectCase語句SelectCase
變量或表達式
Case表達式列表1
語句塊1Case表達式列表2
語句塊2 …[CaseElse
語句塊n+1]EndSelect表達式列表與變量或表達式的類型必須相同,是下面4種形式之一:表達式例:"A"一組用逗號分隔的枚舉值
2,4,6,8
表達式1To表達式260To100Is關(guān)系運算符表達式Is<60本章目錄現(xiàn)在是110頁\一共有612頁\編輯于星期一SelectCase語句例將例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多分支結(jié)構(gòu),用SelectCase語句比If…Then…ElseIf語句直觀,程序可讀性強。但不是所有的多分支結(jié)構(gòu)均可用SelectCase語句代替If…Then…ElseIf語句。本章目錄現(xiàn)在是111頁\一共有612頁\編輯于星期一SelectCase語句例例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)變量及有關(guān)運算符。本章目錄現(xiàn)在是112頁\一共有612頁\編輯于星期一4.2.3條件函數(shù)(1)IIf函數(shù)IIf(表達式,表達式為真時的值,表達式為假時的值)IIf函數(shù)是If…Then…Else結(jié)構(gòu)的簡潔表示例如,將x,y中大的數(shù),放入Tmax變量中:Tmax=IIf(x>y,x,y)該語句與如下語句等價:Ifx>yThenTmax=xElseTmax=y
本章目錄現(xiàn)在是113頁\一共有612頁\編輯于星期一4.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)
本章目錄現(xiàn)在是114頁\一共有612頁\編輯于星期一4.3循環(huán)結(jié)構(gòu)計算機最擅長的功能之一就是按規(guī)定的條件,重復執(zhí)行某些操作。例如,按照人口某增長率,對人口增長統(tǒng)計;根據(jù)各課程的學分、績點和學生的成績,統(tǒng)計每個學生的平均績點等。這類問題都可通過循環(huán)結(jié)構(gòu)來方便地實現(xiàn)。VB.NET中提供了兩種類型的循環(huán)語句:一種是計數(shù)循環(huán)語句;另一種是條件型循環(huán)語句。
本章目錄現(xiàn)在是115頁\一共有612頁\編輯于星期一4.3.1For循環(huán)語句For循環(huán)語句用于控制循環(huán)次數(shù)預(yù)知的循環(huán)結(jié)構(gòu)。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ù)和
本章目錄現(xiàn)在是116頁\一共有612頁\編輯于星期一For循環(huán)語句循環(huán)流程:(1)循環(huán)變量被賦初值,它僅被賦值一次。(2)判斷循環(huán)變量是否在終值內(nèi),如果是,執(zhí)行循環(huán)體;如果否,結(jié)束循環(huán),執(zhí)行Next的下一語句。(3)循環(huán)變量加步長,轉(zhuǎn)(2),繼續(xù)循環(huán)
例4.10將可打印的ASCII碼制成表格輸出本章目錄現(xiàn)在是117頁\一共有612頁\編輯于星期一4.3.2Do…Loop循環(huán)語句Do循環(huán)用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。形式1:Do{While|Until}<條件>
語句塊
[ExitDo
語句塊]Loop形式1為先判斷后執(zhí)行,有可能一次也不執(zhí)行;形式2為先執(zhí)行后判斷,至少執(zhí)行一次。形式2:Do
語句塊
[ExitDo
語句塊]Loop{While|Until}<條件>本章目錄現(xiàn)在是118頁\一共有612頁\編輯于星期一Do…Loop流程本章目錄現(xiàn)在是119頁\一共有612頁\編輯于星期一循環(huán)例題例4.11我國有13億人口,按人口年增長0.8%計算,多少年后我國人口超過26億。解此問題兩種方法,可根據(jù)公式:直接利用標準函數(shù)對數(shù)可求得,但求得的年數(shù)不為整數(shù);也可利用循環(huán)求得。本章目錄代碼說明現(xiàn)在是120頁\一共有612頁\編輯于星期一循環(huán)例題例4.12用輾轉(zhuǎn)相除
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年奉林公司技術(shù)改造及擴產(chǎn)項目可行性研究報告
- 2024-2030年基因工程霍亂疫苗藥品搬遷改造項目可行性研究報告
- 2024-2030年國家甲級資質(zhì):中國移動式自凈器融資商業(yè)計劃書
- 2024-2030年內(nèi)外胎熱補機公司技術(shù)改造及擴產(chǎn)項目可行性研究報告
- 2024-2030年全球及中國貴金屬化學品行業(yè)運行態(tài)勢及供應(yīng)情況預(yù)測報告~
- 2024年度圖書采購合同:圖書館特色活動配套圖書與數(shù)字資源采購協(xié)議3篇
- 2024-2030年全球及中國樹脂定量分配機行業(yè)需求態(tài)勢及前景規(guī)劃分析報告
- 2024-2030年全球及中國射頻除霜機行業(yè)發(fā)展態(tài)勢及應(yīng)用前景預(yù)測報告
- 2024-2030年全球及中國吸引式藥物輸送設(shè)備行業(yè)需求動態(tài)及投資前景展望報告
- 2024-2030年云計算公司技術(shù)改造及擴產(chǎn)項目可行性研究報告
- 腦機接口技術(shù)在教育領(lǐng)域的應(yīng)用前景
- 鐵路檢車員個人工作總結(jié)2篇
- 勞動防護用品的使用和維護安全培訓
- 京東財務(wù)部門組織架構(gòu)
- 土壤污染治理與修復
- 保健品“番茄紅素軟膠囊”的研發(fā)-醫(yī)學資料
- 北京市石景山區(qū)2023-2024學年六年級上學期期末語文試卷
- 天津市和平區(qū)第一中學2023-2024學年八年級上學期期末英語試卷
- 組裝簡易太陽能小車
- 2023年天津中學業(yè)水平合格性考試物理試卷試題(含答案詳解)
- 廣東省深圳市2022-2023學年五年級上學期數(shù)學期末考試試卷(含答案)5
評論
0/150
提交評論