版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章基本語法(一)1.1.NET1.2VisualStudio20101.3簡(jiǎn)單的C#程序1.4加法運(yùn)算器1.5計(jì)算器
1.1.NET
2000年6月,微軟公司推出了.NET平臺(tái),這是一個(gè)讓人印象深刻的平臺(tái),它用一種全新的思想將Internet和萬維網(wǎng)(WorldWideWeb,WWW)集成到了軟件開發(fā)、工程發(fā)布和使用中。它有著優(yōu)秀的語言兼容性,這使得開發(fā)人員可以使用多種不同的開發(fā)語言(C#、VB.NET、C++、F#等)來開發(fā)應(yīng)用程序。1.1.1.NET框架.NET框架(.NETFramework)是所有.NET程序運(yùn)行所必需的,這個(gè)框架也是微軟整個(gè).NET戰(zhàn)略的核心。.NET框架是一個(gè)采用系統(tǒng)虛擬機(jī)的方式運(yùn)行的編程平臺(tái),它包含了許多有助于互聯(lián)網(wǎng)和內(nèi)部網(wǎng)應(yīng)用迅捷開發(fā)的技術(shù),在通用語言運(yùn)行庫的基礎(chǔ)上,支持多種語言的開發(fā)。.NET框架旨在實(shí)現(xiàn)以下目標(biāo):(1)提供一個(gè)一致的面向?qū)ο蟮木幊汰h(huán)境。(2)提供一個(gè)將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境。(3)提供一個(gè)代碼執(zhí)行環(huán)境。(4)提供一個(gè)可消除腳本環(huán)境或解釋環(huán)境的性能問題的代碼執(zhí)行環(huán)境。(5)使開發(fā)人員的經(jīng)驗(yàn)在面對(duì)類型大不相同的應(yīng)用程序時(shí)保持一致。(6)按照工業(yè)標(biāo)準(zhǔn)生成所有通信,以確?;?NET框架的代碼可與任何其他代碼集成。1.1.2CLR.NET框架的核心是其運(yùn)行庫執(zhí)行環(huán)境,稱為通用語言運(yùn)行庫(CLR)或.NET運(yùn)行庫。CLR提供了一個(gè)可靠而完善的多語言運(yùn)行環(huán)境,簡(jiǎn)化了應(yīng)用程序的開發(fā)配置和管理,從而使組件能在多語言環(huán)境下跨平臺(tái)工作。通常將在CLR控制下運(yùn)行的代碼稱為托管代碼(ManagedCode)。但是,在CLR執(zhí)行編寫好的源代碼之前,需要編譯它們。在.NET中,編譯分為兩個(gè)階段:(1)將源代碼編譯為Microsoft中間語言(MicrosoftIntermediateLanguage,MSIL)。(2)?CLR將MSIL編譯為平臺(tái)專用的代碼。1.1.3MSDNMSDN技術(shù)資源庫是微軟公司為軟件和網(wǎng)站開發(fā)人員提供的技術(shù)資源庫,是使用微軟技術(shù)開發(fā)軟件或應(yīng)用程序時(shí)必定會(huì)參訪的地方,同時(shí)它也提供了訂閱的服務(wù),由微軟不定時(shí)供應(yīng)最新的軟件及技術(shù)文件。MSDN技術(shù)資源庫的在線版本在微軟的MSDN網(wǎng)站上可以訪問,而基于物理介質(zhì)的離線版本則可以通過MSDN訂閱服務(wù)或者購買VisualStudio獲得。VisualStudio支持在安裝VisualStudio時(shí),選擇安裝MSDN技術(shù)資源庫到本地計(jì)算機(jī),或者使用在線版本。每個(gè)MSDN技術(shù)資源庫版本都支持一個(gè)或者多個(gè)VisualStudio版本,可以在VisualStudio的幫助選項(xiàng)中選擇使用的MSDN技術(shù)資源庫版本。1.1.4C#C#由安德斯·?海爾斯伯格(AndersHejlsberg)主持開發(fā),它是一種基于.NET框架的、面向?qū)ο蟮母呒?jí)編程語言。C#由C語言和C++派生而來,繼承了其強(qiáng)大的性能,同時(shí)又以.NET框架類庫作為基礎(chǔ),擁有類似VisualBasic的快速開發(fā)能力。C#的讀音為CSharp,“#”讀作“Sharp”,看起來像是“C++”中兩個(gè)加號(hào)重疊在一起。微軟借助這樣的命名,表示C#在一些語言特性方面相對(duì)于C++的提升。微軟希望借助這種語言來取代Java。目前C#已經(jīng)成為ECMA(歐洲計(jì)算機(jī)制造聯(lián)合會(huì))和ISO(國際標(biāo)準(zhǔn)化組織)的標(biāo)準(zhǔn)規(guī)范。ECMA為C#標(biāo)準(zhǔn)列出了以下設(shè)計(jì)目標(biāo):(1)?C#旨在設(shè)計(jì)成為一種“簡(jiǎn)單、現(xiàn)代、通用”以及面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。(2)此種語言的實(shí)現(xiàn),應(yīng)提供對(duì)于以下軟件工程要素的支持:強(qiáng)類型檢查、數(shù)組維度檢查、未初始化的變量引用檢測(cè)、自動(dòng)垃圾收集(GarbageCollection,指一種自動(dòng)內(nèi)存釋放技術(shù))。軟件必須做到強(qiáng)大、持久,并具有較強(qiáng)的編程生產(chǎn)力。(3)此種語言為在分布式環(huán)境中的開發(fā)提供適用的組件開發(fā)應(yīng)用。(4)為使程序員容易遷移到這種語言,源代碼的可移植性十分重要,尤其是對(duì)于那些已熟悉C和C++的程序員而言。(5)對(duì)國際化的支持非常重要。(6)?C#適合為獨(dú)立和嵌入式的系統(tǒng)編寫程序,從使用復(fù)雜操作系統(tǒng)的大型系統(tǒng)到特定應(yīng)用的小型系統(tǒng)均適用。當(dāng)然,相對(duì)于C和C++,C#也在以下方面進(jìn)行了限制和增強(qiáng):(1)指針(Pointer)只能被用于不安全模式。大多數(shù)對(duì)象訪問通過安全的引用實(shí)現(xiàn),以避免無效的調(diào)用,并且有許多算法用于驗(yàn)證溢出,指針只能用于調(diào)用值類型以及受垃圾收集控制的托管對(duì)象。(2)對(duì)象不能被顯式釋放,代替為當(dāng)不存在被引用時(shí)通過垃圾回收器回收。(3)只允許單一繼承(SingleInheritance),但是一個(gè)類可以實(shí)現(xiàn)多個(gè)接口(Interfaces)。(4)與C++相比,C#擁有更加安全的類型管理。默認(rèn)的安全轉(zhuǎn)換是隱含轉(zhuǎn)換,例如由短整型轉(zhuǎn)換為長(zhǎng)整型和從派生類轉(zhuǎn)換為基類。而接口布爾型與整型及枚舉型與整型不允許隱含轉(zhuǎn)換,非空指針(通過引用相似對(duì)象)與用戶定義類型的隱含轉(zhuǎn)換必須被顯式地確定,不同于C++的復(fù)制構(gòu)造函數(shù)。(5)數(shù)組聲明語法不同。例如,語法為“int[]a=newint[5]”,而不是“inta[5]”。(6)枚舉位于其所在的命名空間中。(7)?C#中沒有模板(Template),但是在C#2.0中引入了泛型(GenericProgramming),并且支持一些C++模板不支持的特性,比如泛型參數(shù)中的類型約束。另一方面,表達(dá)式不能像C++模板中被用于類型參數(shù)。(8)屬性支持,使用類似訪問成員的方式調(diào)用。(9)完整的反射支持。
1.2VisualStudio2010
MicrosoftVisualStudio(VS)是美國微軟公司的開發(fā)工具套件系列產(chǎn)品。VS是一個(gè)基本完整的開發(fā)工具集,它包括了整個(gè)軟件生命周期中所需要的大部分工具。所寫的目標(biāo)代碼適用于微軟支持的所有平臺(tái)。1.2.1歷史從20世紀(jì)90年代開始,微軟開始持續(xù)不斷地發(fā)布VS,至今已經(jīng)發(fā)布了12個(gè)不同版本的VS,表1-1中列出了各個(gè)VS版本的發(fā)布時(shí)間和運(yùn)行基礎(chǔ)。1.2.2VS2010VS2010除了因?yàn)樗羌嫒菪宰詈玫沫h(huán)境之外,它還具有以下優(yōu)點(diǎn):(1)界面被重新設(shè)計(jì)和組織,變得更加清晰和簡(jiǎn)單,能夠更好地支持多文檔窗口以及浮動(dòng)工具窗,并且對(duì)于多顯示器的支持也有所增強(qiáng)。(2)?.NETFrameWork4.0支持開發(fā)面向Windows7的應(yīng)用程序。(3)除了MicrosoftSQLServer,它還支持DB2和Oracle數(shù)據(jù)庫。(4)內(nèi)置MicrosoftSilverlight開發(fā)支持。(5)支持高亮引用。圖1-1是一個(gè)典型的VS2010開發(fā)環(huán)境截圖,它主要包括以下幾個(gè)部分:(1)菜單欄:包含所有開發(fā)、維護(hù)與執(zhí)行程序的命令。(2)工具欄:包含執(zhí)行菜單欄中常用命令的快捷方式。(3)工具箱:包含程序開發(fā)過程中所能夠使用到的定制控件。(4)解決方案資源管理器:用于訪問解決方案中的所有文件。(5)屬性窗口:用于顯示當(dāng)前所選窗體、設(shè)計(jì)視圖中的控件或文件的屬性。(6)窗體設(shè)計(jì)器:用于設(shè)計(jì)和制作程序中的窗體。1.2.3創(chuàng)建項(xiàng)目所有.NET項(xiàng)目基本上都有對(duì)應(yīng)的項(xiàng)目模板,我們所要做的就是根據(jù)項(xiàng)目的類型選擇不同的模板。所以,創(chuàng)建.NET項(xiàng)目很簡(jiǎn)單,只需以下幾個(gè)簡(jiǎn)單的步驟即可:(1)通過“開始”菜單啟動(dòng)VS2010,如圖1-2所示。也可以直接將該應(yīng)用程序發(fā)送至桌面,然后雙擊圖標(biāo)啟動(dòng)。(2)在起始頁中選擇“新建項(xiàng)目”。(3)在打開的“新建項(xiàng)目”對(duì)話框的左側(cè)選擇C#為開發(fā)語言,在右側(cè)的上部選擇.NETFrameWork的版本,在下面的項(xiàng)目模板中選擇合適的模板,在對(duì)話框底部的“名稱(N)”處輸入項(xiàng)目的名稱,在“位置(L)”處輸入項(xiàng)目的保存路徑,或者點(diǎn)擊“瀏覽(B)…”按鈕選擇保存路徑,其他內(nèi)容保持默認(rèn),最后點(diǎn)擊“確定”按鈕完成項(xiàng)目創(chuàng)建,如圖1-4所示。1.2.4控制臺(tái)應(yīng)用程序通過上述過程,我們就可以創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序,如圖1-5所示。所有的.NET程序基本上都是由名稱空間引用、名稱空間聲明和類三個(gè)部分組成的。1.名稱空間引用命名空間提供了一種組織相關(guān)類和其他類型的方式。與文件或組件不同,命名空間是一種邏輯組合,而不是物理組合。名稱空間是.NET管理應(yīng)用程序的一種手段,因?yàn)樵谙到y(tǒng)開發(fā)的過程中會(huì)產(chǎn)生大量的文件、代碼甚至項(xiàng)目,所以我們需要一個(gè)有效的管理手段。在.NET程序開發(fā)過程中,并不需要事必躬親,事實(shí)上微軟已經(jīng)完成了很多復(fù)雜的工作,微軟將完成這些工作的代碼通過名稱空間組織起來,以方便使用,我們只需要告訴系統(tǒng)需要的名稱空間,這個(gè)過程稱為引入名稱空間,其語法結(jié)構(gòu)如下:using名稱空間;系統(tǒng)定義的名稱空間很多,完成不同的編程任務(wù)需要使用不同的名稱空間,當(dāng)然我們不可能也沒有必要將所有的系統(tǒng)名稱空間全部記下來,所以了解和熟悉常用的幾個(gè)名稱空間就可以了。2.名稱空間聲明聲明名稱空間的語法如下:namespace名稱空間名稱名稱空間在命名的時(shí)候要盡可能使用易讀的標(biāo)識(shí)符名稱,,采用Pascal命名法(首字母大寫,其后每個(gè)單詞的首字母大寫,下同),不要使用下劃線、連字符或任何其他非字母數(shù)字字符,盡管C#名稱空間支持中文,但不推薦使用。3.類在C#中類是個(gè)很有趣的存在,它可以大到包含程序的全部,也可以小到只有一行代碼;它可以是復(fù)雜的,也可以是簡(jiǎn)單的。對(duì)它有著嚴(yán)格的規(guī)范限制,但是又可以隨心所欲地發(fā)揮我們的想象力去設(shè)計(jì)它。當(dāng)然,現(xiàn)階段我們不需要了解這么多,只需要知道如何定義和使用自己的類就可以了。定義類的語法結(jié)構(gòu)如下:[訪問修飾符]class類名稱在前面所創(chuàng)建的控制臺(tái)程序中,系統(tǒng)為我們定義了一個(gè)類:classProgram這里的類并沒有訪問修飾符,因?yàn)檫@里的程序還沒有復(fù)雜到需要使用訪問修飾符的程度,但在以后的學(xué)習(xí)中我們將會(huì)用到,到時(shí)再詳細(xì)介紹。類的命名是需要我們注意的地方,因?yàn)椴煌奈恢貌煌某绦?,命名方式?huì)有所區(qū)別,總的來說在命名的時(shí)候盡可能采用易于閱讀和理解的標(biāo)識(shí)符,例如對(duì)象的名稱(Teacher、Book等)、操作的名稱(SQLOption、BookDAL等),由字母、數(shù)字和下劃線構(gòu)成,不能以數(shù)字開頭,不能包含空格,采用Pascal命名法,不要采用諸如AA、BB等沒有任何說明意義的名稱,不推薦使用中文。Main所有的應(yīng)用程序都需要有一個(gè)開始的地方,計(jì)算機(jī)是一個(gè)高效率但是沒有智商的工具,所以我們要明確告訴計(jì)算機(jī)從哪里開始執(zhí)行我們的程序。控制臺(tái)應(yīng)用程序開始的地方就是Main方法。在C#中聲明一個(gè)Main方法的語法如下:[訪問修飾符]staticvoidMain([string[]args])或[訪問修飾符]staticintMain([string[]args])需要注意的是:首先,Main方法必須是靜態(tài)的,也就是需要static關(guān)鍵字修飾,靜態(tài)方法將會(huì)在后面的章節(jié)中介紹;其次,Main方法的首字母是大寫的,參數(shù)可以有也可以沒有;最后,可以沒有返回,也可以返回一個(gè)整型值。
1.3簡(jiǎn)單的C#程序
1.3.1簡(jiǎn)單輸出打開VS2010,創(chuàng)建一個(gè)新的控制臺(tái)應(yīng)用程序,項(xiàng)目名稱為CH01。這里我們需要對(duì)項(xiàng)目做一個(gè)小小的調(diào)整,默認(rèn)情況下系統(tǒng)會(huì)在新創(chuàng)建的項(xiàng)目中添加一個(gè)默認(rèn)的文件Program.cs,而我們需要讓它變得更有意義一些,所以需要更改它的名字。右鍵單擊Program.cs文件,在彈出的菜單中選擇“重命名(M)”,再對(duì)文件進(jìn)行重命名。也可以在解決方案資源管理器中選中Program.cs文件,在屬性窗口中修改文件名。當(dāng)我們完成修改后,系統(tǒng)會(huì)彈出一個(gè)對(duì)話框,詢問我們是否需要執(zhí)行對(duì)這個(gè)默認(rèn)文件的所有引用的修改,這里我們選擇“是(Y)”,如圖1-9所示。接下來,我們需要在Main方法中輸入一些代碼,以完成我們的第一個(gè)C#程序:staticvoidMain(string[]args){Console.WriteLine("HelloWorld!");Console.ReadLine();}在上面的代碼中,我們使用到了一個(gè)系統(tǒng)的類Console,它主要用來操作控制臺(tái)應(yīng)用程序的標(biāo)準(zhǔn)輸入和輸出。它有很多方法,在這里我們首先用到了其中的一個(gè)方法WriteLine(),這個(gè)方法的作用就是向控制臺(tái)輸出信息,我們選擇的是輸出一個(gè)字符串"HelloWorld!"。在這個(gè)方法的后面,我們又使用了Console類的另一個(gè)方法ReadLine(),它的作用就是從標(biāo)準(zhǔn)輸入流讀取一行字符,當(dāng)程序執(zhí)行的過程中遇到它時(shí),程序就會(huì)停止下來等待我們輸入。這里使用它的原因只是讓程序執(zhí)行到這里后停止下來,否則我們什么也看不到。按下鍵盤上的F5鍵,或者點(diǎn)擊工具欄上的“運(yùn)行”按鈕執(zhí)行我們的程序。我們的第一個(gè)C#程序就這樣誕生了,其運(yùn)行結(jié)果如圖1-11所示。1.3.2轉(zhuǎn)義在C語言中有一個(gè)專用的換行符“\n”,這個(gè)符號(hào)在C#中也可以使用,同樣能夠使用的還有通用制表符,例如“\r”、“\t”等。事實(shí)上,在C#中反斜杠(\)稱為轉(zhuǎn)義符,它可以告訴C#其后所出現(xiàn)的字符是字符串中的特殊字符,在字符串中出現(xiàn)反斜杠時(shí),C#將反斜杠與下一個(gè)字符結(jié)合起來,構(gòu)成轉(zhuǎn)義序列。表1-2列出了常用的轉(zhuǎn)義序列。
1.4加法運(yùn)算器
1.4.1問題計(jì)算器是我們經(jīng)常用到的一個(gè)小程序,下面我們就從加法入手,制作一個(gè)簡(jiǎn)單的加法運(yùn)算器,運(yùn)行效果如圖1-13所示。通過圖1-13所示的運(yùn)行結(jié)果圖,我們可以整理出加法運(yùn)算器的一些需求:(1)需要對(duì)用戶有足夠的提示,誰也不會(huì)知道漆黑的屏幕上一個(gè)閃動(dòng)的光標(biāo)是什么意思。(2)提示和數(shù)字在一行顯示。(3)需要接收用戶輸入的兩個(gè)數(shù)字。(4)兩個(gè)數(shù)字相加。(5)分別輸出兩個(gè)數(shù)字以及它們相加的結(jié)果。1.4.2需求分析1.輸出對(duì)于上面所提出的一些需求,有些是很容易實(shí)現(xiàn)的,例如提示信息的輸出,我們可以采用Console.Write()方法來實(shí)現(xiàn): Console.Write("請(qǐng)輸入第一個(gè)數(shù)字:");
Console.Write("請(qǐng)輸入第二個(gè)數(shù)字:");這里也可以使用WriteLine()方法,但是提示和數(shù)字將會(huì)出現(xiàn)在兩行里。2.輸入如何接收用戶的輸入?我們需要學(xué)習(xí)一個(gè)新的方法:ReadLine()。這個(gè)方法也是屬于Console類的,它的作用就是接收用戶的輸入,直到回車鍵結(jié)束,它會(huì)將用戶的輸入自動(dòng)轉(zhuǎn)換為一個(gè)字符串。stringname=Console.ReadLine();3.變量要想使用好ReadLine()方法,我們必須要使用變量來配合,因?yàn)檫@個(gè)方法只負(fù)責(zé)接收,而不負(fù)責(zé)存儲(chǔ),這就需要我們用別的方法來將用戶的輸入臨時(shí)存儲(chǔ)起來,這樣才不會(huì)丟失這些值。能夠作為值的容器的就是變量了。C#中定義變量的語法結(jié)構(gòu)如下:[訪問修飾符]數(shù)據(jù)類型變量名稱[=值]訪問修飾符決定了變量能夠被什么人訪問,默認(rèn)是私有的。數(shù)據(jù)類型則告訴系統(tǒng)這個(gè)變量能夠存放什么樣的值。數(shù)據(jù)類型可以是系統(tǒng)的內(nèi)置類型,也可以是用戶自定義的類型。變量名稱就是該變量的名稱。變量在命名的時(shí)候需要遵循以下規(guī)范:(1)必須以字母開頭。(2)只能由字母、數(shù)字和下劃線組成,而不能包含空格、標(biāo)點(diǎn)符號(hào)、運(yùn)算符等其他符號(hào)。(3)不能與C#中的關(guān)鍵字名稱相同。(4)不能與C#中的庫函數(shù)名稱相同。實(shí)際應(yīng)用中變量的定義語法可以有很多種變體,例如: //定義一個(gè)變量,然后賦值inti;i=10;
//定義一個(gè)變量并賦值intj=10;
//定義多個(gè)變量,并賦值。注意多個(gè)變量類型必須相同intk,l=10;//定義不同類型的變量必須使用單獨(dú)的語句doublepi=3.1459d;floatf=12.3f;stringname="Tom";需要注意的是,變量在使用之前必須經(jīng)過初始化,也就是賦初值,否則編譯器不允許在程序中使用這個(gè)變量。4.類型轉(zhuǎn)換在加法運(yùn)算器中,我們操作的都是整數(shù),但是采用ReadLine()方法接收到的則是一個(gè)字符串,因此這里我們就需要對(duì)用戶的輸入進(jìn)行類型轉(zhuǎn)換。在C#中常用的類型轉(zhuǎn)換方式有兩種:Parse()方法和Convert類。對(duì)于Parse()方法,它的作用就是將字符串轉(zhuǎn)換為指定的類型,它都是作為特定數(shù)據(jù)類型的一個(gè)方法存在的,因此它一般用于比較簡(jiǎn)單的類型轉(zhuǎn)換。而Convert類則適用于更加復(fù)雜的類型轉(zhuǎn)換,這個(gè)類提供了一系列的方法來幫助我們將一種類型的值轉(zhuǎn)換為另外一種類型的值。1.4.3實(shí)現(xiàn)加法運(yùn)算器在完成了所有的分析工作之后,我們就可以動(dòng)手來完成加法運(yùn)算器的制作了,其代碼如下:staticvoidMain(string[]args){//聲明變量intnum1=0,num2=0,result=0;//接收用戶的輸入Console.Write("請(qǐng)輸入第一個(gè)數(shù)字:");num1=int.Parse(Console.ReadLine());Console.Write("請(qǐng)輸入第二個(gè)數(shù)字:");num2=int.Parse(Console.ReadLine());//計(jì)算結(jié)果result=num1+num2;
//輸出結(jié)果Console.WriteLine();Console.WriteLine("您輸入的第一個(gè)數(shù)字是:{0};\n您輸入的第二個(gè)數(shù)字是:{1};\n它們的和是:{2}。",num1,num2,result);Console.ReadLine();}在上面的代碼中,我們首先聲明了三個(gè)整型變量,并賦予它們初始值0。然后通過兩個(gè)相同的輸出和輸入結(jié)構(gòu)來完成提示信息的輸出和用戶輸入的接收,這里我們用到了類型轉(zhuǎn)換,將用戶輸入的字符串轉(zhuǎn)換成為整型。最后,我們完成了一個(gè)數(shù)學(xué)運(yùn)算,通過“+”運(yùn)算符將兩個(gè)變量相加并賦給第三個(gè)變量result。在使用一個(gè)WriteLine()方法實(shí)現(xiàn)換行后,我們用一個(gè)復(fù)雜的輸出語句來顯示最終的結(jié)果,在這條語句中我們用到了占位符“{0}”,它的作用和C語言中占位符的作用是一樣的。
1.5計(jì)算器
1.5.1問題一個(gè)完整的計(jì)算器至少應(yīng)該能夠完成加、減、乘、除的運(yùn)算,所以接下來我們將繼續(xù)開發(fā)加法運(yùn)算器,將其做成一個(gè)能夠完成加、減、乘、除運(yùn)算的簡(jiǎn)單的計(jì)算器,如圖1-14所示。1.5.2需求分析1.運(yùn)算符在大多數(shù)程序中都要進(jìn)行數(shù)學(xué)運(yùn)算,這時(shí)候算術(shù)運(yùn)算符就是不可缺少的,表1-3中列出了常見的算術(shù)運(yùn)算符。除了算術(shù)運(yùn)算符外,C#中還有關(guān)系運(yùn)算符,表1-4中列出了常見的關(guān)系運(yùn)算符。2.條件語句我們就需要根據(jù)不同的情況來決定我們所要做的事情,條件語句是我們的最佳選擇。在C#中條件語句有兩種:if…else結(jié)構(gòu)和switch結(jié)構(gòu)。條件語句可以根據(jù)條件是否滿足或根據(jù)表達(dá)式的值控制代碼的執(zhí)行路徑,對(duì)于條件分支,C#繼承了C和C++的結(jié)構(gòu),因此對(duì)我們來說并不陌生,即if(條件表達(dá)式) 程序語句[elseif 程序語句else
程序語句]在使用的過程中,需要注意以下幾點(diǎn):(1)條件表達(dá)式必須返回布爾值。(2)如果程序語句是多條語句,就需要用大括號(hào)“{}”把這些語句組合成為一個(gè)塊。(3)?elseif結(jié)構(gòu)和else結(jié)構(gòu)都是可選的,因此可以單獨(dú)使用if語句,也可以將它們集合在一起來使用。(4)?elseif語句的數(shù)量是不受限制的,可以根據(jù)需要寫一個(gè)或多個(gè)。在我們制作的計(jì)算器中,運(yùn)算符需要用戶輸入,這時(shí)我們就可以通過條件語句來判斷用戶的輸入: //加if(op=="+")result=num1+num2;//減if(op=="-")result=num1-num2;//乘if(op=="*")result=num1*num2;//除if(op=="/")result=num1/num2;我們亦可以采用下面的方式: if(op=="+")//加result=num1+num2;elseif(op=="-")//減result=num1-num2;elseif(op=="*")//乘result=num1*num2;elseif(op=="/")//除result=num1/num2;elseConsole.WriteLine("您的輸入有誤!");上面兩個(gè)代碼片段實(shí)現(xiàn)的功能是一樣的,區(qū)別只是所采用的條件語句的結(jié)構(gòu)不同。相比較而言,第二個(gè)代碼片段的結(jié)構(gòu)更加緊湊,而且可以明顯地看出來這是一個(gè)完整的多分支的判斷結(jié)構(gòu)。switch...case語句是C#中另外一個(gè)用于分支判斷的結(jié)構(gòu),它適合從一組互斥的分支中選擇一個(gè)執(zhí)行。其形式是switch參數(shù)的后面跟著一組case子句,如果switch參數(shù)中表達(dá)式的值等于某個(gè)case子句旁邊的值,就執(zhí)行該case子句中的代碼: switch(參數(shù)){case值1:[break;]case值2:[break;][default:break;]}對(duì)于switch結(jié)構(gòu)來說,我們?cè)谑褂玫臅r(shí)候也需要注意以下幾點(diǎn):(1)?case子句是不需要使用“{}”符號(hào)的。(2)?case子句的值必須是常量表達(dá)式,不允許使用變量。(3)如果case子句只有值而沒有語句,則可以不寫break,否則break是不能少的。(4)?default子句的作用是,如果表達(dá)式的值不符合任何一個(gè)case子句的值,就執(zhí)行default子句的代碼。它不是必需的,但是作為一個(gè)好的編程習(xí)慣,強(qiáng)烈建議在switch結(jié)構(gòu)中加上default子句。我們可以使用switch結(jié)構(gòu)來完成上面的判斷:switch(op){case"+":result=num1+num2;break;case"-":result=num1-num2;break;case"*":result=num1*num2;break;case"/":result=num1/num2;
break;default:Console.WriteLine("您的輸入有誤!");break;}在上面的代碼中我們采用了switch結(jié)構(gòu)來完成對(duì)用戶輸入的判斷,參數(shù)是用來存放用戶輸入的變量op,四個(gè)case分別對(duì)應(yīng)加、減、乘、除運(yùn)算,最后的default子句用來處理用戶的錯(cuò)誤輸入。1.5.3實(shí)現(xiàn)計(jì)算器有了運(yùn)算符和條件語句,我們就可以來完成計(jì)算器的制作了:staticvoidMain(string[]args){//聲明變量floatnum1=0,num2=0,result=0;stringop="";//接收用戶輸入Console.Write("請(qǐng)輸入第一個(gè)數(shù)字:");num1=float.Parse(Console.ReadLine());Console.Write("請(qǐng)輸入第二個(gè)數(shù)字:");num2=float.Parse(Console.ReadLine());
Console.Write("請(qǐng)輸入運(yùn)算符[+、-、*、/]:");op
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房產(chǎn)抵押貸款貸款合同糾紛訴訟服務(wù)合同3篇
- 促進(jìn)旅游消費(fèi)發(fā)展的策略選擇與實(shí)施路徑
- 高速公路改造項(xiàng)目實(shí)施計(jì)劃與進(jìn)度安排
- 中國貴州白酒行業(yè)競(jìng)爭(zhēng)格局分析:發(fā)展現(xiàn)狀、進(jìn)出口貿(mào)易及未來前景研究報(bào)告(智研咨詢)
- 智能家居控制系統(tǒng)制造項(xiàng)目可行性研究報(bào)告申請(qǐng)備案
- 義務(wù)教育階段學(xué)校家庭與學(xué)校結(jié)合教學(xué)的策略及實(shí)施路徑
- 二零二五年度國際人才代理招聘合作協(xié)議書2篇
- 內(nèi)燃機(jī)車常見故障分析及處理1733
- 反恐認(rèn)證全套文件表格優(yōu)質(zhì)資料
- 住院醫(yī)師規(guī)范化培訓(xùn)臨床實(shí)踐能力結(jié)業(yè)考核基本技能操作評(píng)分表(氣管插管術(shù))
- 談心談話記錄表 (空白表)
- GB/T 39879-2021疑似毒品中鴉片五種成分檢驗(yàn)氣相色譜和氣相色譜-質(zhì)譜法
- Unit10單元基礎(chǔ)知識(shí)點(diǎn)和語法點(diǎn)歸納 人教版英語九年級(jí)
- 自控原理課件1(英文版)
- GB/T 14048.14-2006低壓開關(guān)設(shè)備和控制設(shè)備第5-5部分:控制電路電器和開關(guān)元件具有機(jī)械鎖閂功能的電氣緊急制動(dòng)裝置
- 2023年上海市市高考物理一模試卷含解析
- 西方政治制度史ppt-西方政治制度史Historyof課件
- 2023年成都溫江興蓉西城市運(yùn)營集團(tuán)有限公司招聘筆試模擬試題及答案解析
評(píng)論
0/150
提交評(píng)論