《Csharp語言基礎》word版_第1頁
《Csharp語言基礎》word版_第2頁
《Csharp語言基礎》word版_第3頁
《Csharp語言基礎》word版_第4頁
《Csharp語言基礎》word版_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、.第2章 C# 語言基礎本章將首先介紹C# 的基本數(shù)據(jù)類型、關鍵字和標識符、常量與變量、運算符和表達式,以及C# 編碼規(guī)范等基礎知識。然后介紹C#程序控制結構的概念以及選擇結構與循環(huán)結構的實現(xiàn),最后介紹C# 中的數(shù)組、方法、類與對象以及文件操作。2.1 數(shù) 據(jù) 類 型數(shù)據(jù)類型是對各種數(shù)據(jù)形態(tài)的描述,如整型、浮點型等。在計算機中,數(shù)據(jù)類型的不同決定所占內(nèi)存存儲空間的大小,使用什么樣的數(shù)據(jù)類型要根據(jù)實際情況而定。C# 提供了大量的內(nèi)置數(shù)據(jù)類型,被稱為基本數(shù)據(jù)類型,與之對應的是用戶自定義的復合數(shù)據(jù)類型,本節(jié)只介紹基本數(shù)據(jù)類型。C# 語言與.NET框架的結合是無縫的,因此,提供給C# 開發(fā)者的基本數(shù)據(jù)

2、類型也是.NET框架的一部分。表2-1列舉了C# 語言中的基本數(shù)據(jù)類型,以及與它們對應的.NET框架的數(shù)據(jù)類型、大小和說明。表2-1 C# 的基本數(shù)據(jù)類型C# 數(shù)據(jù)類型.NET框架數(shù)據(jù)類型大小(位)說 明boolSystem.Boolean8邏輯值,true或者false,默認值為falsebyteSystem.Byte8無符號的字節(jié),所存儲的值的范圍是0255,默認值為0sbyteSystem.SByte8帶符號的字節(jié),所存儲的值的范圍是-128127,默認值為0charSystem.Char16無符號的16位Unicode字符,默認值為'0'decimalSystem.De

3、cimal128不遵守四舍五入規(guī)則的十進制數(shù),默認值為0.0mdoubleSystem.Double64雙精度的浮點類型,默認值為0.0dfloatSystem.Single32單精度的浮點類型,默認值為0.0fintSystem.Int3232帶符號的32位整型,默認值為0uintSystem.UInt3232無符號的32位整型,默認值為0longSystem.Int6464帶符號的64位整型,默認值為0ulongSystem.UInt6464無符號的64位整型,默認值為0續(xù)表C# 數(shù)據(jù)類型.NET框架數(shù)據(jù)類型大小(位)說 明shortSystem.Int1616帶符號的16位整型,默認值為

4、0ushortSystem.UInt1616無符號的16位整型,默認值為0stringSystem.String取決于實現(xiàn)平臺指向字符串對象的引用,0大約20億個Unicode字符,默認值為nullobjectSystem.Object32指向類實例的引用,默認值為null2.2 標識符與命名空間標識符是計算機語言里常用的一個術語,而命名空間是微軟在.NET中提出的一個新概念。本節(jié)將介紹這些概念。2.2.1 關鍵字與標識符在Visual C# 2008中,關鍵字是對編譯器具有特殊意義的預定義保留符號。如if、int、do等都是Visual C# 2008的關鍵字,它們不能在程序中用作標識符,除

5、非它們有一個“”前綴(只有在特殊的情況下使用,否則并不提倡這么做)。例如,“if”是一個合法的標識符,而“if”不是合法的標識符,因為它是關鍵字。在Visual C# 2008中,常量、變量、函數(shù)、類等的命名必須遵循一定的規(guī)則,通常把符合這些規(guī)則的名稱稱為Visual C# 2008的合法標識符,這些規(guī)則如下。(1)標識符必須由字母、十進制數(shù)字、下劃線(_)或漢字組成,且只能以字母、下劃線或漢字開頭。(2)如果以下劃線開頭,則必須包括至少一個其他字符。(3)不能是Visual C# 2008中的關鍵字(保留字)。(4)Visual C# 2008的標識符區(qū)分大小寫。下面列出了一些合法與不合法的

6、標識符:abc、_12、加數(shù)、if_else / 合法的標識符 12abc / 錯誤,不能以數(shù)字開頭_ / 錯誤,以下劃線開頭,應至少包括一個其他字符Ab#3 / 錯誤,包含非法字符#false/ 錯誤,“false”是Visual C# 2008中的關鍵字注意: Visual C# 2008標識符區(qū)分大小寫,如:“AbC”與“ABc”是不同的標識符,在編寫代碼時要注意。 雖然在Visual C# 2008中,標識符中允許使用中文(漢字),但是并不提倡這么做。2.2.2 命名空間在編寫大型程序時,隨著代碼的增多,就意味著越來越多的名稱、命名數(shù)據(jù)、已命名過程以及已命名類等,這就極有可能發(fā)生兩個或

7、者兩個以上的標識符名稱沖突,造成項目的失敗。為了解決類似的問題,需要引入“命名空間”的概念。微軟在.NET中,引入了命名空間(namespace),命名空間就是用來解決上述問題的,它為各種標識符創(chuàng)建一個已命名的容器,同名的兩個標識符如果不出現(xiàn)在同一個命名空間中,是不會相互沖突的。例如,求平方根的數(shù)學函數(shù)Sqrt()位于命名空間“System.Math”中,在使用Sqrt()函數(shù)時,需要輸入完整的命名空間和函數(shù)名稱“System.Math.Sqrt()”,增加輸入的難度。Visual C# 2008允許在代碼編輯器的頂部引入命名空間,這樣就可以在下面的代碼中直接使用Sqrt()函數(shù)。引入“Sys

8、tem.Math”命名空間的代碼如下:/*using System.Math/*2.3 常量與變量計算機處理的數(shù)據(jù)分為常量和變量兩種,本節(jié)將介紹常量與變量的概念以及它們的聲明和使用方法。2.3.1 常量常量是指在程序運行的過程中,其值保持不變的量。Visual C# 2008的常量包括符號常量、數(shù)值常量、字符常量、字符串常量和布爾常量等。符號常量一經(jīng)聲明就不能在任何時候改變其值。Visual C# 2008中,采用const語句來聲明常量,其語法格式為:const <數(shù)據(jù)類型> <常量名> = <表達式> 對以上語法格式說明如下: <常量名>遵循

9、標識符的命名規(guī)則,一般采用大寫字母。表達式由數(shù)值、字符、字符串常量及運算符組成,也可以包括前面定義過的常量,但是不能使用函數(shù)調(diào)用。例如:/*const int MIN = 100;/ 聲明常量MAX, 代表1000, 整型const float PI = 3.14F; / 聲明常量PI, 代表3.14, 單精度型const string STR = "2009010101" / 聲明常量STR, 代表"2009010101", 字符串型/* 如果多個常量的數(shù)據(jù)類型是相同的,可在同一行中聲明這些常量,聲明時用逗號將它們隔開。如:/*const int NU

10、M1 = 10, NUM2 = 100, NUM3 = 1000;/*2.3.2 變量變量是在程序運行的過程中,其值可以改變的量,它表示數(shù)據(jù)在內(nèi)存中的存儲位置,每個變量都有一個數(shù)據(jù)類型,以確定哪些數(shù)據(jù)類型的數(shù)據(jù)能夠存儲在該變量中。C# 是一種數(shù)據(jù)類型安全的語言,編譯器總是保證存儲在變量中的數(shù)據(jù)具有合適的數(shù)據(jù)類型。在Visual C# 2008中,聲明變量的語法格式為:<數(shù)據(jù)類型> <變量名> = <表達式> 對以上語法格式說明如下: <變量名>遵循C# 合法標識符的命名規(guī)則。 = <表達式>為可選項,可以在聲明變量時給變量賦一個初值(

11、即變量的初始化),例如:/*float x = 12.3; / 聲明單精度型變量X, 并賦初值12.3/*等價于:/*float x;x = 12.3;/* 一行可以聲明多個相同類型的變量,且只需指定一次數(shù)據(jù)類型,變量與變量之間用逗號隔開,例如:/*int num1 = 10, num2 = 100, num3 = 1000, num4 = 10000;/*2.4 運算符與表達式運算符是對一個或者多個返回值的代碼元素執(zhí)行運算的代碼單元,Visual C# 2008的運算符包括算術運算符、邏輯運算符、字符串連接運算符、關系運算符、賦值運算符、位運算符和自增自減運算符等,本節(jié)將詳細介紹這些運算符和

12、表達式,以及它們的優(yōu)先級。2.4.1 算術運算符算術運算符用于完成算術運算,所涉及的操作對象有文本、常量、變量、表達式、函數(shù)調(diào)用以及屬性調(diào)用等。例如,運算符“*”用于將其兩邊的操作數(shù)的值相乘。Visual C# 2008的算術運算符及相應的表達式示例如表2-2所示。表2-2 算術運算符運 算運 算 符算術表達式示例結果及說明取負-1對數(shù)字1進行取負運算加法+1+21加上2,結果為3減法-1-21減去2,結果為-1乘法*1×21乘以2,結果為2除法/10/210除以2,結果為5求余%10%4取10除以4的余數(shù),結果為2對算術運算符說明如下:“%”為求余運算符,求兩個數(shù)相除后的余數(shù)。 進

13、行除法運算時,如果兩個操作數(shù)均為整數(shù),則得到的結果也是整數(shù),并不采用四舍五入規(guī)則,而是直接舍棄其小數(shù)部分,例如,“10 / 4”的結果為“2”、“15 / 4”的結果為“3”。 數(shù)學運算符中,只有取負(-)為一元(只有一個操作數(shù))運算符,其他均為二元(有兩個操作數(shù))運算符。 算術運算符的優(yōu)先級順序由高到低依次為:-(取負)、*、/、%、+、-(減)。2.4.2 字符串連接運算符Visual C# 2008的字符串連接運算符只有一個,即“+”,它一般用于連接兩個字符串。字符串連接表達式的結果仍為字符串類型的數(shù)據(jù),例如:"Visual" + " C# " +

14、 "2008"/ 結果為"Visual C# 2008"對字符串連接運算符說明如下:當“+”連接的對象中既有字符串又有數(shù)字時,則可以省略數(shù)字的字符串定界符(""),例如,"Visual" + " C# " + "2008"可以寫成"Visual" + " C# " + 2008這樣做并不會影響計算的結果,但是并不提倡這樣做。2.4.3 關系運算符關系運算符用于比較兩個表達式之間的關系,比較的對象通常有數(shù)值、字符串和對象等,關系運算的結果

15、是一個bool值,即true或false。Visual C# 2008的關系運算符及相應的表達式示例如表2-3所示。表2-3 關系運算符運 算 符測試關系關系表達式示例結果(設變量a的值為10)=等于a = 8false!=不等于a != 8 true<小于a < 8false<=小于等于a <= 8false>大于a > 8true>=大于等于a >=8true對關系運算符及表2-3說明如下: 表2-3中給出的運算結果,是在假定變量a的值為10的前提下得到的。 所有的關系運算符均為二元運算符。關系表達式的運算結果是一個bool值,即true或f

16、alse。2.4.4 邏輯運算符邏輯運算符(也稱布爾運算符)用于判斷操作數(shù)之間的邏輯關系。邏輯表達式的值也是一個bool值,即true或false。Visual C# 2008的邏輯運算符有: &&(與)、|(或)、!(非)。其中,只有邏輯非(!)為一元運算符,其他均為二元運算符。邏輯運算符(&&、|、!)的運算規(guī)則如下。(1)邏輯非(!):由真變假或由假變真,進行取反運算。例如,!(2>10) 的值為true。(2)邏輯與(&&):對兩個操作數(shù)進行與運算,如果兩個操作數(shù)均為true,則結果為true;否則為false。例如,(2<1

17、0) && (8<5) 的值為false。(3)邏輯或(|):對兩個操作數(shù)進行或運算,如果兩個操作數(shù)其中有一個為true,則結果為true;只有當兩個操作數(shù)均為false時,結果才為false。例如,(2<10) | (8<5) 的值為true。2.4.5 賦值運算符在Visual C# 2008中,賦值運算符有基本賦值運算符和復合賦值運算符兩種,通常用于將表達式的值賦給一個變量。Visual C# 2008的賦值運算符(包括復合賦值運算符)及相應的表達式示例如表2-4所示。表2-4 賦值運算符運 算 符賦值表達式示例結果(設變量a的初始值為2)= a = 8

18、 把值8賦給變量aa = 8+=a += 8a = 10(相當于a = a + 8)-=a -= 8a = -6(相當于a = a - 8)*=a *= 8a = 16(相當于a = a * 8)/=a /= 2a = 1(相當于a = a / 2)%=a %= 2a = 0(相當于a = a % 2)2.4.6 位運算符計算機處理的數(shù)據(jù)都是以二進制的形式保存的,Visual C# 2008提供了一些專門針對二進制數(shù)的運算符,即位運算符。位運算符按二進制位進行運算,Visual C# 2008的位運算符如表2-5所示。表2-5 Visual C# 2008的位運算符位運算符含 義說 明&

19、;與兩個二進制位同為1時結果為1,否則為0|或兩個二進制位同為0時結果為0,否則為1異或兩個二進制位相同時結果為0,否則為1取補按位取反,即 0 = 1, 1 = 0<<左移操作數(shù)按位左移,最高位移出,最低位補0>>右移操作數(shù)按位右移,最低位移出2.4.7 自增和自減運算符Visual C# 2008與C/C+相同,保留了自增運算符(+)和自減運算符(-),它們是一元運算符,且操作的對象只能是變量。1. 自增運算自增運算符(+)的作用是對變量的值加1。自增運算符(+)可以放在被操作變量的前面(稱為前自增),也可以放在被操作變量的后面(稱為后自增)。前自增與后自增有很大的

20、區(qū)別,如果帶有自增運算符(+)的變量出現(xiàn)在表達式中,前自增的執(zhí)行過程是:先使變量的值加1,再執(zhí)行其他運算;而后自增則是先執(zhí)行其他運算,再使變量的值加1。2. 自減運算自減運算符(-)的作用是對變量的值減1。自減運算符(-)可以放在被操作變量的前面(稱為前自減),也可以放在被操作變量的后面(稱為后自減)。前自減與后自減也有很大的區(qū)別,如果帶有自減運算符(-)的變量出現(xiàn)在表達式中,前自減的執(zhí)行過程是:先使變量的值減1,再執(zhí)行其他運算;而后自減則是先執(zhí)行其他運算,再使變量的值減1。2.4.8 其他運算符除了前面介紹的一些運算符,Visual C# 2008還提供了一些其他的運算符,如條件運算符、is

21、運算符和typeof運算符等。1. 條件運算符條件運算符“?:”也稱為三元運算符,它是后面要介紹的選擇結構控制語句ifelse的簡化形式,具有3個操作數(shù),其語法格式如下:<條件表達式> ? <條件成立的返回值> : <條件不成立的返回值>其中<條件表達式>的值是一個bool值,即true或false。若表達式的值為true,則返回<條件成立的返回值>;否則,返回<條件不成立的返回值>。雖然三元運算符看起來很簡單,但它常常會導致程序難以理解,可讀性差,因此在實際的編程中,并不提倡這么做。而應當盡量避免使用它,采用選擇結構控制

22、語句ifelse來解決類似的問題。2. is運算符is運算符用來比較兩個對象的引用變量,其語法格式如下: result = <表達式> is <類型>result是一個bool值,如果<表達式>的數(shù)據(jù)類型和<類型>相同或者相容,則result的值為true;否則,result的值為false。3. typeof運算符typeof運算表達式返回一個表示特定類型的System.Type對象。例如,typeof(int) 返回表示S32類型的Type對象,typeof(string) 返回表示System.String類型的Type對

23、象。該運算符在使用反射動態(tài)查找對象信息時很有用。4. sizeof運算符sizeof是C# 語言的一種一元運算符,它并不是函數(shù)。sizeof運算符以字節(jié)形式給出了其操作數(shù)的存儲大小。操作數(shù)可以是一個類型名,操作數(shù)的存儲大小由操作數(shù)的數(shù)據(jù)類型決定。2.4.9 運算符的優(yōu)先級和結合順序前面介紹了C# 的一些常用的運算符,本小節(jié)將介紹這些運算符的優(yōu)先級順序及其結合性。下面先來看一下運算符的優(yōu)先級。1. 運算符的優(yōu)先級根據(jù)運算符所執(zhí)行運算的特點和它們的優(yōu)先級,可將它們歸為一元運算符和括號、算術運算符、移位運算符、比較運算符、位運算及邏輯運算符、賦值運算符、后自增和后自減運算符7個等級。這些運算符的優(yōu)先

24、級順序根據(jù)這7個等級進行劃分,如表2-6所示(從第一級到第七級,優(yōu)先級逐步降低)。表2-6 運算符的優(yōu)先級級 別運 算 符第一級+、-(作為前綴)、()、+、- (取負)、!、第二級*、/、%、+、-第三級<<、>>第四級<、>、<=、>=、=、!=第五級&、|、&&、|、?:第六級=、*=、/=、%=、+=、-=、<<=、>>=、&=、=、|=第七級+、-(作為后綴)2. 運算符的結合順序運算符的結合順序分為左結合和右結合兩種,在Visual C# 2008中,所有的一元運算符(+、-作為

25、后綴時除外)都是右結合的。而對于二元運算符,除了賦值運算符外,其他的都是左結合的。2.5 命 名 規(guī) 則編寫代碼時,使用良好的風格對標識符命名是一個優(yōu)秀的程序員必須養(yǎng)成的習慣。變量、函數(shù)、結構、枚舉、類、屬性、事件、方法等的命名都遵循這些規(guī)則,這樣可以大大地提高程序的可讀性,并可方便開發(fā)團隊中各人員之間的合作。1. 標識符的書寫風格標識符的書寫通常有以下幾種風格。1)Pascal風格大寫每一個單詞的第一個字符,如WindowsApplication1、MaxNum。2)Camel風格除了第一個單詞,大寫其他單詞的第一個字符,如maxNum、userName。3)全部大寫如果標識符包含的字符數(shù)較

26、少,可以采用全部大寫的方法,一般用于常量的命名,如PI、MAX、MIN。2. 類、結構、枚舉和命名空間的命名類(class)、結構(struct)、枚舉(enum)和命名空間(namespace)的命名一般采用Pascal風格,由名詞或名詞短語構成,且不要使用任何前綴。例如,F(xiàn)orm1、StudentInformation、WeekDays、TxtWelcome等。3. 參數(shù)、變量的命名參數(shù)、變量的命名采用Camel風格,使用描述性的名字,使它能夠充分地表示出參數(shù)或變量的含義。例如,maxNumber、userName等。如果變量僅用來在循環(huán)中計數(shù),即作為循環(huán)變量,則優(yōu)先使用i、j、k、l、m

27、、n等。4. 方法、事件的命名方法的命名采用Pascal風格,使用動詞或動詞短語命名。例如,AddValues、Button1- Click、Click、DoubleClick、FormClosing等。5. 屬性的命名屬性的命名采用Pascal風格,使用名詞或名詞短語命名。例如,BackColor、ReadOnly、ControlBox等。6. 控件的命名控件的命名采用Camel風格(Form除外),即首字母小寫,而每個后面連接的單詞的首字母都大寫,命名的形式為:控件名的簡寫+英文描述(英文描述首字母大寫)。例如,btnOk、lblShow、txtInputNum等。Visual C# 20

28、08常用控件的簡寫及應用舉例如表2-7所示。表2-7 常用控件的簡寫及應用舉例常用控件簡 寫應用舉例FormFrmFrmMain(一個Form對應一個類)LabellbllblShowLinkLabelllblllblEmailButtonbtnbtnOkTextBoxtxttxtInputNumRichTextBoxrtxtrtxtShowDataMainMenummnummnuFileCheckBoxchkchkStockRadioButtonrbtnrbtnSelectedGroupBoxgbxgbxMainPictureBoxpicpicLogoPanelpnlpnlBodyListB

29、oxlstlstUserComboBoxcmbcmbMenuListViewlvwlvwBrowserTreeViewtvwtvwTypeTabControltctltctlMainDateTimePickerdtpdtpFinishDateHscrollBarhsbhsbColorVscrollBarvsbvsbColorTimertmrtmrLoginToolBartlbtlbMainStatusBarstbstbFootPrintOpenFileDialogodlgodlgFileSaveFileDialogsdlgsdlgSaveFoldBrowserDialogfbdlgfgdlgB

30、rowserFontDialogfdlgfdlgFootColorDialogcdlgcdlgColorPrintDialogpdlgpdlgPrint2.6 控 制 結 構結構化程序設計有3種基本控制結構:順序結構、選擇結構和循環(huán)結構。本節(jié)將介紹這3種控制結構的概念及相應的控制語句。2.6.1 順序結構順序結構是一種線性結構,也是程序設計中最簡單、最常用的基本結構,它只是一種編寫和執(zhí)行程序的協(xié)議,并不需要專門的控制語句來支持。從宏觀上來看,任何程序或系統(tǒng)都可以看成是由一個個基本結構或基本程序段構成的順序結構。2.6.2 選擇結構在日常的事件處理中常常需要根據(jù)不同的情況,采用不同的措施來解決問

31、題。同樣,在程序設計中,也要根據(jù)不同的給定條件而采用不同的處理方法,選擇結構就是用來解決這一類問題的。選擇結構也稱為分支結構,其特點是:根據(jù)給定的條件是否成立,決定從各個可能的分支中執(zhí)行某一分支的相應操作。Visual C# 2008提供了兩種用于選擇結構的控制語句,分別是if語句和switch語句,下面首先介紹一下if語句。1. if語句if語句是用于實現(xiàn)單條件(即只有一個條件)選擇結構的語句,其特點是:當給定條件(條件表達式)為真時,執(zhí)行條件為真的語句組(以下稱為“語句組 1”);如果為假,則執(zhí)行條件為假的語句組(以下稱為“語句組2”)。對if語句說明如下: 語句組1、語句組2可

32、以為空(空則表示不做任何處理),然而當兩個語句組都為空的話就失去了選擇的意義。 為養(yǎng)成良好的源代碼書寫習慣,如果必須設立空分支,應該將空分支作為條件為假的分支(即語句組1非空)。根據(jù)上面的說明可以看出,單條件的if語句應當有兩種形式:一個分支的if語句和兩個分支的if語句(if . else語句)。1)一個分支的if語句只具有一個分支的if語句的語法格式如下:if (<條件表達式>) <語句組>對以上語法格式說明如下: <條件表達式>可以是關系表達式或邏輯表達式,表示執(zhí)行的條件,運算結果是一個bool值(true或false)。 <語句組>可以是

33、一條語句,也可以是多條語句。當只有一條語句時,花括號()可以省略,但并不提倡這么做。一個分支的if語句使用示例如下:/*if (n % 2 = 0) MessageBox.Show(n.ToString() + "是偶數(shù)");/*2)兩個分支的if語句具有兩個分支的if . else語句的語法格式如下:if (<條件表達式>) <語句組1>else <語句組2>對以上語法格式說明如下: 同樣<條件表達式>可以是關系表達式或邏輯表達式,表示執(zhí)行的條件。 當<條件表達式>的值為true(成立)時,執(zhí)行<語句組&#

34、160;1>。反之,當<條件表達式>的值為false(不成立)時,執(zhí)行<語句組2>。兩個分支的if語句使用示例如下:/*if (n % 2 = 0) MessageBox.Show(n.ToString() + "是偶數(shù)");else MessageBox.Show(n.ToString() + "是奇數(shù)");/*3)if語句的嵌套if語句的嵌套是指 <語句組1> 或 <語句組2> 中又包含if語句的情況,其形式為:if (<條件表達式1>) if (<條件表達式2>) els

35、e 嵌套的if語句的執(zhí)行過程與前面介紹的類似,嵌套的層數(shù)一般沒有具體的規(guī)定,但是一般來說超過10層的嵌套就很少見了。4)嵌套格式else if如果程序中出現(xiàn)了多層的if語句嵌套,會使得程序結構很不清晰,從而使代碼的可讀性很差。在這種情況下,應該使用if語句的嵌套格式else if來編寫代碼,這樣可以使程序簡明易懂。if語句的嵌套格式else if語法格式如下: if (<條件表達式1>) <語句組1> else if (<條件表達式2>) <語句組2> else if (<條件表達式n>) <語句組n>else <語

36、句組n+1>對以上語法格式說明如下: else子句與else if子句都是可選項,可以放置多個else if子句,但必須放置在else子句之前。 執(zhí)行過程:先測試<條件表達式1>,如成立,執(zhí)行<語句組1>;否則依次測試else if的條件,若成立則執(zhí)行相應的語句組;如果都不成立,則執(zhí)行else子句的<語句組n+1>。嵌套格式else if語句使用示例如下:/*if (n % 2 = 0) MessageBox.Show(n.ToString() + "是偶數(shù)");else if (n % 2 = 1) MessageBox.Show

37、(n.ToString() + "是奇數(shù)");else MessageBox.Show(n.ToString() + "既不是偶數(shù), 也不是奇數(shù)");/*2. switch語句使用if語句的嵌套可以實現(xiàn)多分支選擇,但仍然不夠快捷。為此,Visual C# 2008提供了多分支選擇語句switch來實現(xiàn),其語法格式如下:switch (<表達式>)case <常量表達式1>:<語句組1>break;case <常量表達式2>:<語句組2>break;case <常量表達式n>:<

38、語句組n>break;default:<語句組n + 1>break;對以上語法格式說明如下: <表達式>為必選參數(shù),一般為變量。 <常量表達式>是用于與<表達式>匹配的參數(shù),只可以是常量表達式,不允許使用變量或者有變量參與的表達式。 <語句組>不需要使用花括號()括起來,而是使用break語句來表示每個case子句的結尾。 default子句為可選項。多分支switch語句的執(zhí)行過程如下。(1)首先計算<表達式>的值。(2)用<表達式>的值與case后面的<常量表達式>去逐個匹配,若發(fā)現(xiàn)相等

39、,則執(zhí)行相應的語句組。(3)如果<表達式>的值與任何一個<常量表達式>都不匹配,在有default子句的情況下,則執(zhí)行default后面的<語句組n + 1>;若沒有default子句,則跳出switch語句,執(zhí)行switch語句后面的語句。注意:在使用switch語句時,每一個case子句必須要有break語句結尾,否則會發(fā)生編譯錯誤。但如果該case子句的<語句組>為空,則不需要使用break語句,但這種情況是比較少見的。switch語句使用示例如下:/*switch (n % 2) case 0: MessageBox.Show(n.ToS

40、tring() + "是偶數(shù)"); break; case 1: MessageBox.Show(n.ToString() + "是奇數(shù)"); break; default: MessageBox.Show(n.ToString() + "既不是偶數(shù), 也不是奇數(shù)"); break;/*2.6.3 循環(huán)結構循環(huán)是指在程序中,從某處開始有規(guī)律地重復執(zhí)行某一操作塊的現(xiàn)象,被重復執(zhí)行的操作塊稱為循環(huán)體,循環(huán)體執(zhí)行與否及循環(huán)次數(shù)視循環(huán)類型與條件而定。然而,無論何種類型的循環(huán)都有一個共同點:循環(huán)次數(shù)必須有限(即非死循環(huán))。Visual C# 2

41、008中的循環(huán)控制語句有for語句、while語句和dowhile語句。1. for語句在一般的程序設計語言中,for語句用于確定循環(huán)次數(shù)的循環(huán)結構,但在C、C+和C# 中,for語句是最靈活的一種循環(huán)語句。它不僅能用于確定循環(huán)次數(shù)的循環(huán),也可以用于不確定循環(huán)次數(shù)的循環(huán)。通常情況下,for語句按照指定的次數(shù)執(zhí)行循環(huán)體,循環(huán)執(zhí)行的次數(shù)由一個變量來控制,通常把這種變量稱為循環(huán)變量。for語句的語法格式為:for (<表達式1> <表達式2> <表達式3>) <循環(huán)體>對以上語法格式說明如下: <表達式1>、<表達式2>、<

42、;表達式3>均為可選項,但其中的分號(;)不能省略。 <表達式1>僅在進入循環(huán)之前執(zhí)行一次,通常用于循環(huán)變量的初始化,如“i = 0”,其中i為循環(huán)變量。 <表達式2>為循環(huán)控制表達式,當該表達式的值為true時,執(zhí)行循環(huán)體,為false時跳出循環(huán)。通常是循環(huán)變量的一個關系表達式,如“i <= 10”。 <表達式3>通常用于修改循環(huán)變量的值,如“i +”。 <循環(huán)體>即重復執(zhí)行的操作塊。for語句的使用示例如下:/*int i; int sum = 0; for (i = 0; i <= 10; i +) sum += i;/*

43、2. while語句與for語句一樣,while語句也是C# 的一種基本的循環(huán)語句,它常常用來解決根據(jù)條件執(zhí)行循環(huán)而不關心循環(huán)次數(shù)的問題。while語句的語法格式為:while (<表達式>) <循環(huán)體>對以上語法格式說明如下: <表達式>為循環(huán)條件,一般為關系表達式或邏輯表達式。如:i <= 10、n % 3 = 0 && n % 7 = 0(表示n既能被3整除又能被7整除)。 <循環(huán)體>即反復執(zhí)行的操作塊。將上面介紹的for語句使用示例改寫成while語句:/*int i = 0; int sum = 0; while

44、(i <= 10) sum += i; i +; /*3. dowhile語句dowhile語句類似于while語句,是while語句的變形,兩者的區(qū)別在于while語句把循環(huán)條件的判斷置于循環(huán)體執(zhí)行之前,而dowhile語句則把循環(huán)條件放在循環(huán)體執(zhí)行之后。do.while語句的語法格式為:do <循環(huán)體> while (<表達式>);對以上語法格式說明如下: <循環(huán)體>即反復執(zhí)行的操作塊。 <表達式>為循環(huán)條件,一般為關系表達式或邏輯表達式。在“while (<表達式>)”之后,應加上一個分號(;),否則將發(fā)生編譯錯誤。將上面

45、介紹的for語句使用示例改寫成do.while語句如下:/*int i = 0; int sum = 0; do sum += i; i +; while (i <= 10); /*2.6.4 跳轉語句跳轉語句用于使程序語句的執(zhí)行實現(xiàn)跳轉,從而控制程序的執(zhí)行。在Visual C# 2008中,有goto語句、break語句和continue語句等跳轉語句。1. goto語句goto語句一般與標簽搭配使用,將程序的執(zhí)行跳轉到標簽所指定的代碼行,其語法格式為: goto <標簽標識符> <標簽標識符>: 對以上語法格式說明如下: <標簽標識符>的命名遵循C

46、# 的合法標識符規(guī)則。 標簽由<標簽標識符>和后面的冒號(:)構成。 標簽可以在“goto”之前,也可以在“goto”之后?!癵oto”和標簽必須同時出現(xiàn)在程序的有效區(qū)之內(nèi),否則會產(chǎn)生編譯錯誤。 goto語句容易引起程序流程的混亂,降低程序的易讀性,因此在實際的編程過程中,要盡量避免使用goto語句。2. break語句break語句可以用于終止最近封閉的循環(huán)(包括for語句、while語句、do.while語句以及用于數(shù)組和集合的foreach語句),也可以出現(xiàn)在switch語句中,將控制傳遞給終止語句后面的語句。3. continue語句continue語句將控制權傳遞給它所在

47、的循環(huán)語句(包括for語句、while語句、do.while語句、foreach語句)的下一次循環(huán)。即continue語句用于中止正在執(zhí)行的循環(huán),轉而執(zhí)行下一輪循環(huán)。4. return語句return語句終止它出現(xiàn)在其中的方法的執(zhí)行并將控制返回給調(diào)用方法,具有跳轉的功能。它還可以返回一個可選值。一般用于方法中返回指定類型的值。如果方法為void類型(空類型),則可以省略return語句。5. throw語句throw語句用于發(fā)出在程序執(zhí)行期間出現(xiàn)異常的信號,通常throw語句與結構化異常處理語句try.catch或try.finally一起使用,當引發(fā)異常時,程序查找處理此異常的catch語句

48、,也可以用throw語句重新引發(fā)已捕獲的異常。2.7 數(shù) 組在Visual C# 2008中,數(shù)組實際上是對象,這是C# 的數(shù)組與其他程序設計語言的數(shù)組的最大差別。另外,在聲明及使用的方式等方面都有所不同,下面首先來看一下有關數(shù)組的幾個概念,然后再介紹C# 數(shù)組與其他程序設計語言的數(shù)組的差異。2.7.1 幾個相關的概念數(shù)組是各種高級語言中所廣泛采用的,在講解數(shù)組的聲明與應用之前,首先來介紹一下有關數(shù)組的幾個重要概念。1. 數(shù)組將一組有序的、個數(shù)有限的、數(shù)據(jù)類型相同的數(shù)據(jù)組合起來作為一個整體,用一個統(tǒng)一的名字(數(shù)組名)來表示,這些有序數(shù)據(jù)的全體則稱為一個數(shù)組。簡單地說,數(shù)組是具有相同數(shù)據(jù)類型的元

49、素的有序集合。例如,下面的兩組數(shù)可以構成數(shù)組。1,2,3,4,5,6,7,8,9,10"A","B","C","D","E","F","G"2. 數(shù)組元素與下標在同一數(shù)組中,構成該數(shù)組的數(shù)據(jù)稱為數(shù)組元素。如在上面列舉的幾組數(shù)據(jù)中:2是第一個數(shù)組的元素,"B"是第二個數(shù)組的元素。Visual C# 2008中用一個統(tǒng)一的名字(數(shù)組名)來表示數(shù)組。如果要訪問數(shù)組中的數(shù)組元素,就需要將數(shù)組名與下標(也稱為索引)結合起來(具體的訪問方法稍后介紹

50、)。所謂“下標”,就是指數(shù)組元素在該數(shù)組中的索引值,用以標明數(shù)組元素在數(shù)組中的位置。在Visual C# 2008中,數(shù)組元素的索引值是從0開始的,即:0,1,2,3,4,5,6,。3. 數(shù)組的類型數(shù)組的類型是指構成數(shù)組的元素的數(shù)據(jù)類型(構成同一數(shù)組的所有數(shù)組元素的數(shù)據(jù)類型必須一致),它可以是任何的基本數(shù)據(jù)類型,例如,整型、字符串型、布爾型等;也可以是用戶自定義類型,例如,結構、枚舉、對象等。4. 數(shù)組的維數(shù)數(shù)組下標(索引)的個數(shù)稱為數(shù)組的維數(shù)。如果數(shù)組中的所有元素,都能按行(或列)順序排成一行(或一列),則只需要用一個下標便能標識其所在的位置,這樣的數(shù)組稱為一維數(shù)組。一維數(shù)組以線性方式存儲一定數(shù)目的元素,如上面提到的兩組數(shù)。

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論