版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 1第第2 2章章 數(shù)據(jù)類型與流程控制數(shù)據(jù)類型與流程控制2.1 2.1 數(shù)據(jù)類型數(shù)據(jù)類型2.2 2.2 不同數(shù)據(jù)類型之間的轉(zhuǎn)換不同數(shù)據(jù)類型之間的轉(zhuǎn)換2.3 2.3 常量與變量常量與變量2.4 2.4 運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式2.5 2.5 控制臺(tái)應(yīng)用程序與格式化輸出控制臺(tái)應(yīng)用程序與格式化輸出2.6 2.6 C#C#流程控制語(yǔ)句流程控制語(yǔ)句2 22.1 2.1 數(shù)據(jù)類型數(shù)據(jù)類型uC#C#數(shù)據(jù)類型分為兩類:值類型和引用類型。數(shù)據(jù)類型分為兩類:值類型和引用類型。 值類型值類型:值類型變量直接保存變量的值值類型變量直接保存變量的值 包括簡(jiǎn)單類型、枚舉類型、結(jié)構(gòu)類型、可空類型。包括簡(jiǎn)單類型、枚舉類
2、型、結(jié)構(gòu)類型、可空類型。 引用類型引用類型:引用類型變量保存的是數(shù)據(jù)的引用地引用類型變量保存的是數(shù)據(jù)的引用地址。址。 包括類、接口、數(shù)組、委托。包括類、接口、數(shù)組、委托。 一般把引用類型的變量稱為對(duì)象。一般把引用類型的變量稱為對(duì)象。3 3類類 別別描描 述述值類型值類型簡(jiǎn)單類型簡(jiǎn)單類型有符號(hào)整型:有符號(hào)整型:sbyte,short,int,longsbyte,short,int,long無符號(hào)整型:無符號(hào)整型:byte,ushort,uint,ulongbyte,ushort,uint,ulongUnicodeUnicode字符:字符:charcharIEEEIEEE浮點(diǎn)型:浮點(diǎn)型:float
3、,doublefloat,double高精度小數(shù):高精度小數(shù):decimaldecimal布爾型:布爾型:boolbool枚舉類型枚舉類型用戶自定義類型用戶自定義類型enumenum E E結(jié)構(gòu)類型結(jié)構(gòu)類型用戶自定義類型用戶自定義類型structstruct S S引用類型引用類型類類型類類型所有其他類型的最終基類:所有其他類型的最終基類:objectobjectUnicodeUnicode字符串:字符串:stringstring用戶自定義類型用戶自定義類型class Cclass C接口類型接口類型用戶自定義類型用戶自定義類型interface Iinterface I數(shù)組類型數(shù)組類型單維與
4、多維數(shù)組,例如,單維與多維數(shù)組,例如,intint與與intint,委托類型委托類型用戶自定義類型用戶自定義類型delegate T D()delegate T D()4 4值類型與引用類型區(qū)別值類型與引用類型區(qū)別 12345H堆棧堆56ij實(shí)際數(shù)據(jù)12345Hobjobj5 5值類型和引用類型的區(qū)別值類型和引用類型的區(qū)別 特性特性值類型值類型引用類型引用類型變量中保存的內(nèi)容變量中保存的內(nèi)容實(shí)際數(shù)據(jù)實(shí)際數(shù)據(jù)指向?qū)嶋H數(shù)據(jù)的引用指針指向?qū)嶋H數(shù)據(jù)的引用指針內(nèi)存空間配置內(nèi)存空間配置堆棧(堆棧(StackStack)受管制的堆(受管制的堆(Managed HeapManaged Heap)內(nèi)存需求內(nèi)存需
5、求較少較少較多較多執(zhí)行效率執(zhí)行效率較快較快較慢較慢內(nèi)存釋放時(shí)間點(diǎn)內(nèi)存釋放時(shí)間點(diǎn)執(zhí)行超過定義變量執(zhí)行超過定義變量的作用域時(shí)的作用域時(shí)由垃圾回收機(jī)制負(fù)責(zé)回收由垃圾回收機(jī)制負(fù)責(zé)回收可以為可以為nullnull不可以不可以可以可以6 62.1.2 2.1.2 整型整型 uC#C#提供了八種整型(即計(jì)算機(jī)組成原理中的提供了八種整型(即計(jì)算機(jī)組成原理中的“定點(diǎn)數(shù)定點(diǎn)數(shù)”):): sbytesbyte:1 1字節(jié)有符號(hào)字節(jié)有符號(hào) bytebyte: 1 1字節(jié)無符號(hào)字節(jié)無符號(hào) shortshort: 2 2字節(jié)有符號(hào)字節(jié)有符號(hào) ushortushort:2 2字節(jié)無符號(hào)字節(jié)無符號(hào) intint: 4 4字節(jié)
6、有符號(hào),最常用字節(jié)有符號(hào),最常用 uintuint: 4 4字節(jié)無符號(hào)字節(jié)無符號(hào) longlong: 8 8字節(jié)有符號(hào)字節(jié)有符號(hào) ulongulong:8 8 字節(jié)無符號(hào)字節(jié)無符號(hào)各類型表示的數(shù)據(jù)類型見表各類型表示的數(shù)據(jù)類型見表2-32-37 72.1.3 2.1.3 浮點(diǎn)類型浮點(diǎn)類型 floatfloat: 4 4字節(jié)浮點(diǎn)數(shù),常用。例如:字節(jié)浮點(diǎn)數(shù),常用。例如:35.0f35.0fdoubledouble: 8 8字節(jié)浮點(diǎn)數(shù),常用。例如:字節(jié)浮點(diǎn)數(shù),常用。例如:2.7E+232.7E+23decimaldecimal:1616字節(jié)浮點(diǎn)數(shù),特殊的浮點(diǎn)數(shù),精度高字節(jié)浮點(diǎn)數(shù),特殊的浮點(diǎn)數(shù),精度高
7、適用于金融、貨幣等需要高精度數(shù)值的領(lǐng)域。適用于金融、貨幣等需要高精度數(shù)值的領(lǐng)域。 其類型指定符為其類型指定符為M M(或(或m m)。)。 例如:例如: decimal y = 9999999999999999999999999m; decimal y = 9999999999999999999999999m; floatfloat和和doubledouble的浮點(diǎn)數(shù)格式與計(jì)算機(jī)組成原理介紹的的浮點(diǎn)數(shù)格式與計(jì)算機(jī)組成原理介紹的IEEE754 IEEE754 規(guī)定的格式相同規(guī)定的格式相同 各類型表示的數(shù)據(jù)類型見表各類型表示的數(shù)據(jù)類型見表2-42-48 82.1.4 2.1.4 布爾型布爾型 u
8、用用boolbool表示,表示,boolbool類型只有兩個(gè)值類型只有兩個(gè)值truetrue和和falsefalse。 例如:例如: boolbool isExistisExist = false; = false; boolbool b = (i0 & i0 & iz) & (xz) & (x 100 | i 100 | i 0) Console.WriteLineConsole.WriteLine(成績(jī)不在成績(jī)不在0-1000-100范圍內(nèi)范圍內(nèi));); 4141 elseelse switch (i / 10) / switch (i / 10) /整除整
9、除 case 10: case 10: Console.WriteConsole.Write(滿分,滿分,);); gotogoto case 9; case 9; case 9: case 9: Console.WriteLineConsole.WriteLine(優(yōu)秀優(yōu)秀);); break; break; case 8: case 8: case 7: case 7: Console.WriteLineConsole.WriteLine(良好良好);); break; break; case 6: case 6: Console.WriteLineConsole.WriteLine(及格
10、及格);); break; break; default: default: Console.WriteLineConsole.WriteLine(不及格不及格);); break; break; Console.ReadLineConsole.ReadLine();(); 42422.6.2 2.6.2 循環(huán)語(yǔ)句循環(huán)語(yǔ)句u 包括:包括: forfor語(yǔ)句語(yǔ)句 whilewhile語(yǔ)句語(yǔ)句 do-whiledo-while語(yǔ)句語(yǔ)句 foreachforeach語(yǔ)句,用于對(duì)集合、數(shù)組進(jìn)行操作。語(yǔ)句,用于對(duì)集合、數(shù)組進(jìn)行操作。 43432.6.2 2.6.2 循環(huán)語(yǔ)句(續(xù))循環(huán)語(yǔ)句(續(xù))forfo
11、r語(yǔ)句語(yǔ)句一般形式:一般形式:for (for (初始值初始值; ;循環(huán)條件循環(huán)條件; ;循環(huán)控制循環(huán)控制) ) 語(yǔ)句序列語(yǔ)句序列 4444例例2-4.2-4.使用使用forfor語(yǔ)句控制循環(huán)語(yǔ)句控制循環(huán)體體 public static void Main() public static void Main() Console.ClearConsole.Clear();(); Console.BackgroundColorConsole.BackgroundColor = = ConsoleColor.BlueConsoleColor.Blue; ; Console.ForegroundCol
12、orConsole.ForegroundColor = = ConsoleColor.RedConsoleColor.Red; ; Console.BeepConsole.Beep();(); for ( for (intint i = 1; i 10; i += 2) i = 1; i 10; i += 2) Console.SetCursorPosition(40 - i / 2, i); Console.SetCursorPosition(40 - i / 2, i); for (for (intint j = 0; j i; j+) j = 0; j i; j+) Console.Wr
13、iteConsole.Write(* *);); Console.WriteLineConsole.WriteLine();(); Console.ReadLineConsole.ReadLine();(); 45452.6.2 2.6.2 循環(huán)語(yǔ)句循環(huán)語(yǔ)句( (續(xù)續(xù)) )u foreachforeach語(yǔ)句語(yǔ)句 foreachforeach語(yǔ)句用于逐個(gè)提取集合中的元素,并對(duì)集合語(yǔ)句用于逐個(gè)提取集合中的元素,并對(duì)集合中每個(gè)元素執(zhí)行語(yǔ)句序列中操作的場(chǎng)合。一般形式為:中每個(gè)元素執(zhí)行語(yǔ)句序列中操作的場(chǎng)合。一般形式為: foreachforeach ( ( 類型類型 標(biāo)識(shí)符標(biāo)識(shí)符 in in 表達(dá)式表
14、達(dá)式 ) ) 語(yǔ)句序列語(yǔ)句序列 注意注意(1 1)循環(huán)變量是一個(gè)只讀型的局部變量循環(huán)變量是一個(gè)只讀型的局部變量。 (2 2)循環(huán)變量類型必須和表達(dá)式所包含的集合元素循環(huán)變量類型必須和表達(dá)式所包含的集合元素的類型一致的類型一致46462.6.2 2.6.2 循環(huán)語(yǔ)句循環(huán)語(yǔ)句( (續(xù)續(xù)) )判斷下列語(yǔ)句是否正確判斷下列語(yǔ)句是否正確, ,并說明原因:并說明原因: intint myIntmyInt=1,2,3;=1,2,3; foreach(floatforeach(float test in test in myIntmyInt) ) test+; test+; Console.WriteLine
15、(testConsole.WriteLine(test);); 問題問題1 1:循環(huán)變量在循環(huán)體中被賦值:循環(huán)變量在循環(huán)體中被賦值test+;test+;(循環(huán)變量是一個(gè)只讀型的局部循環(huán)變量是一個(gè)只讀型的局部變量變量)問題問題2 2:float test float test (循環(huán)變量類型必須和表達(dá)式所包含的節(jié)元素類型一致)(循環(huán)變量類型必須和表達(dá)式所包含的節(jié)元素類型一致)例題例題2-52-547472.6.2 2.6.2 循環(huán)語(yǔ)句(續(xù))循環(huán)語(yǔ)句(續(xù))whilewhile語(yǔ)句語(yǔ)句一般形式:一般形式: while (while (條件條件) ) 語(yǔ)句序列語(yǔ)句序列 循環(huán)體內(nèi)的程序可能會(huì)執(zhí)行多次,
16、也可能一次也不執(zhí)行。循環(huán)體內(nèi)的程序可能會(huì)執(zhí)行多次,也可能一次也不執(zhí)行。例題例題2-62-648482.6.2 2.6.2 循環(huán)語(yǔ)句(續(xù))循環(huán)語(yǔ)句(續(xù))do-whiledo-while一般形式:一般形式: dodo 語(yǔ)句序列語(yǔ)句序列 while (while (條件條件);); 循環(huán)體內(nèi)的程序至少會(huì)執(zhí)行一次,然后再判斷條件是否為循環(huán)體內(nèi)的程序至少會(huì)執(zhí)行一次,然后再判斷條件是否為truetrue,如果條件為,如果條件為truetrue,則繼續(xù)循環(huán)。,則繼續(xù)循環(huán)。49492.6.3 2.6.3 跳轉(zhuǎn)語(yǔ)句跳轉(zhuǎn)語(yǔ)句u1.break1.break語(yǔ)句語(yǔ)句 功能:功能:退出最近的封閉退出最近的封閉switc
17、hswitch、whilewhile、dodo- -whilewhile、forfor或或foreachforeach語(yǔ)句。語(yǔ)句。 格式:格式: break;break;5050【例例】循環(huán)接收和輸出鍵盤輸入的每一行的值,當(dāng)接收的內(nèi)容為空字符串時(shí)退循環(huán)接收和輸出鍵盤輸入的每一行的值,當(dāng)接收的內(nèi)容為空字符串時(shí)退出。出。 using System;using System;namespace namespace BreakExampleBreakExample public class Program public class Program public static void Main() p
18、ublic static void Main() for (; ; ) for (; ; ) Console.WriteConsole.Write(請(qǐng)輸入一個(gè)字符串(直接回車退出)請(qǐng)輸入一個(gè)字符串(直接回車退出):);:); string s = string s = Console.ReadLineConsole.ReadLine();(); if (s = ) break; if (s = ) break; Console.WriteLineConsole.WriteLine(你輸入的是你輸入的是: 0., s);: 0., s); Console.ReadLineConsole.Read
19、Line();(); 51512.6.3 2.6.3 跳轉(zhuǎn)語(yǔ)句跳轉(zhuǎn)語(yǔ)句 ( (續(xù)續(xù)) )u2.continue2.continue語(yǔ)句語(yǔ)句 功能:功能:將控制傳遞給下一個(gè)將控制傳遞給下一個(gè)whilewhile、do-whiledo-while、forfor或或foreachforeach,繼續(xù)執(zhí)行下一次循環(huán)。,繼續(xù)執(zhí)行下一次循環(huán)。 格式:格式: continue ;continue ;52522.6.3 2.6.3 跳轉(zhuǎn)語(yǔ)句跳轉(zhuǎn)語(yǔ)句 ( (續(xù)續(xù)) )u3.goto3.goto語(yǔ)句語(yǔ)句僅在下面兩種情況下才可能會(huì)使用僅在下面兩種情況下才可能會(huì)使用gotogoto語(yǔ)句:語(yǔ)句:(1 1)用于)用于sw
20、itchswitch語(yǔ)句中從一個(gè)語(yǔ)句中從一個(gè)casecase標(biāo)簽轉(zhuǎn)到另一個(gè)標(biāo)簽轉(zhuǎn)到另一個(gè)casecase標(biāo)標(biāo)簽處。簽處。(2 2)用于直接退出到多重嵌套循環(huán)的外部。)用于直接退出到多重嵌套循環(huán)的外部。不建議使用不建議使用gotogoto語(yǔ)句!語(yǔ)句!53532.6.3 2.6.3 跳轉(zhuǎn)語(yǔ)句跳轉(zhuǎn)語(yǔ)句 ( (續(xù)續(xù)) )u4.return4.return語(yǔ)句語(yǔ)句 功能:功能:將控制返回到出現(xiàn)將控制返回到出現(xiàn)returnreturn語(yǔ)句的函數(shù)成語(yǔ)句的函數(shù)成員的調(diào)用方。員的調(diào)用方。 格式:格式: return return 表達(dá)式表達(dá)式; 其中表達(dá)式為可選項(xiàng),如果該函數(shù)成員的返回其中表達(dá)式為可選項(xiàng),如果該
21、函數(shù)成員的返回類型不為類型不為nullnull,則,則returnreturn語(yǔ)句必須使用表達(dá)式返回這語(yǔ)句必須使用表達(dá)式返回這個(gè)類型的值,否則個(gè)類型的值,否則returnreturn語(yǔ)句不能使用表達(dá)式。語(yǔ)句不能使用表達(dá)式。5454【例例2-92-9】循環(huán)與跳轉(zhuǎn)綜合舉例循環(huán)與跳轉(zhuǎn)綜合舉例 。55552.6.4 2.6.4 異常處理異常處理 異??梢砸詢煞N不同的方式引發(fā):異??梢砸詢煞N不同的方式引發(fā):C#C#語(yǔ)句和表達(dá)式執(zhí)行過程中激發(fā)了某個(gè)異常的條件,語(yǔ)句和表達(dá)式執(zhí)行過程中激發(fā)了某個(gè)異常的條件,使得操作無法正常結(jié)束,從而引發(fā)異常。例如整數(shù)除使得操作無法正常結(jié)束,從而引發(fā)異常。例如整數(shù)除法操作分母為
22、零時(shí)將拋出一個(gè)異常。法操作分母為零時(shí)將拋出一個(gè)異常。throwthrow語(yǔ)句無條件,即時(shí)的拋出異常。語(yǔ)句無條件,即時(shí)的拋出異常。trytry語(yǔ)句提供了一種機(jī)制來捕捉執(zhí)行過程中發(fā)生的語(yǔ)句提供了一種機(jī)制來捕捉執(zhí)行過程中發(fā)生的異常。以下是它的三種可能的形式:異常。以下是它的三種可能的形式:try-catchtry-catchtry-finallytry-finallytry-catch-finallytry-catch-finally56562.6.4 2.6.4 異常處理異常處理 1.try-catch1.try-catch語(yǔ)句語(yǔ)句trytry 語(yǔ)句序列語(yǔ)句序列 catchcatch(異常類型(異
23、常類型 標(biāo)識(shí)符)標(biāo)識(shí)符) 異常處理異常處理 在程序運(yùn)行正常的時(shí)候,執(zhí)行在程序運(yùn)行正常的時(shí)候,執(zhí)行trytry塊內(nèi)的程序。如果塊內(nèi)的程序。如果trytry塊中塊中出現(xiàn)了異常,程序就轉(zhuǎn)移到出現(xiàn)了異常,程序就轉(zhuǎn)移到catchcatch塊中執(zhí)行。塊中執(zhí)行。 57572.6.4 2.6.4 異常處理異常處理 ( (續(xù)續(xù)) ) 2.try-catch-finally 2.try-catch-finally語(yǔ)句語(yǔ)句trytry 語(yǔ)句序列語(yǔ)句序列 catchcatch(異常類型(異常類型 標(biāo)識(shí)符)標(biāo)識(shí)符) 異常處理異常處理 finallyfinally 語(yǔ)句序列語(yǔ)句序列 例題例題2-102-1058583.throw3.throw語(yǔ)句語(yǔ)句 格式:格式:throw throw 表達(dá)式表達(dá)式; 拋出表達(dá)式的值。拋出表達(dá)式的值。 注意表達(dá)式類型必須是注意表達(dá)式類型必須是System.ExceptionSystem.Exception或從或從System.ExcSystem.Exceptioneption派生的類的類型。派生的類的類型。 throwthrow也可以不帶表達(dá)式,不帶表達(dá)式的也可以不帶表達(dá)式,不帶表達(dá)式的throwthrow語(yǔ)句語(yǔ)句只能用在只能用在catchcatch塊中,在這種情況下,它重
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 馬鞍山學(xué)院《學(xué)習(xí)筑夢(mèng)科技中國(guó)夢(mèng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年三方借款協(xié)議書附借款合同履行監(jiān)督與報(bào)告義務(wù)3篇
- 2024年度雙方網(wǎng)絡(luò)安全合作協(xié)議書2篇
- 2024年度云計(jì)算環(huán)境下電子支付安全協(xié)議及技術(shù)優(yōu)化合同3篇
- 2025知識(shí)產(chǎn)權(quán)合同范本專賣店特許合同
- 2025年伊春道路貨物運(yùn)輸駕駛員考試
- 2024年度原材料采購(gòu)與回購(gòu)合同協(xié)議3篇
- 單位人力資源管理制度精彩匯編
- 2024年標(biāo)準(zhǔn)技術(shù)合作合同書樣本版B版
- 2025機(jī)場(chǎng)配電箱合同
- JGJT334-2014 建筑設(shè)備監(jiān)控系統(tǒng)工程技術(shù)規(guī)范
- 2024年網(wǎng)格員考試題庫(kù)1套
- 生命科學(xué)前沿技術(shù)智慧樹知到期末考試答案章節(jié)答案2024年蘇州大學(xué)
- 2023年小兒推拿保健師考試真題試卷(含答案)
- 高血壓護(hù)理常規(guī)課件
- 心臟介入手術(shù)談話技巧
- 海南省三亞市吉陽(yáng)區(qū)2022-2023學(xué)年六年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 辦公樓消防改造工程環(huán)境保護(hù)措施
- 2023-2024學(xué)年高一下學(xué)期家長(zhǎng)會(huì) 課件
- 溯源與解讀:學(xué)科實(shí)踐即學(xué)習(xí)方式變革的新方向
- 班克街教育方案
評(píng)論
0/150
提交評(píng)論