版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
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 運算符與表達式運算符與表達式2.5 2.5 控制臺應(yīng)用程序與格式化輸出控制臺應(yīng)用程序與格式化輸出2.6 2.6 C#C#流程控制語句流程控制語句2 22.1 2.1 數(shù)據(jù)類型數(shù)據(jù)類型uC#C#數(shù)據(jù)類型分為兩類:值類型和引用類型。數(shù)據(jù)類型分為兩類:值類型和引用類型。 值類型值類型:值類型變量直接保存變量的值值類型變量直接保存變量的值 包括簡單類型、枚舉類型、結(jié)構(gòu)類型、可空類型。包括簡單類型、枚舉類
2、型、結(jié)構(gòu)類型、可空類型。 引用類型引用類型:引用類型變量保存的是數(shù)據(jù)的引用地引用類型變量保存的是數(shù)據(jù)的引用地址。址。 包括類、接口、數(shù)組、委托。包括類、接口、數(shù)組、委托。 一般把引用類型的變量稱為對象。一般把引用類型的變量稱為對象。3 3類類 別別描描 述述值類型值類型簡單類型簡單類型有符號整型:有符號整型:sbyte,short,int,longsbyte,short,int,long無符號整型:無符號整型:byte,ushort,uint,ulongbyte,ushort,uint,ulongUnicodeUnicode字符:字符:charcharIEEEIEEE浮點型:浮點型: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ù)據(jù)12345Hobjobj5 5值類型和引用類型的區(qū)別值類型和引用類型的區(qū)別 特性特性值類型值類型引用類型引用類型變量中保存的內(nèi)容變量中保存的內(nèi)容實際數(shù)據(jù)實際數(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)存釋放時間點內(nèi)存釋放時間點執(zhí)行超過定義變量執(zhí)行超過定義變量的作用域時的作用域時由垃圾回收機制負責回收由垃圾回收機制負責回收可以為可以為nullnull不可以不可以可以可以6 62.1.2 2.1.2 整型整型 uC#C#提供了八種整型(即計算機組成原理中的提供了八種整型(即計算機組成原理中的“定點數(shù)定點數(shù)”):): sbytesbyte:1 1字節(jié)有符號字節(jié)有符號 bytebyte: 1 1字節(jié)無符號字節(jié)無符號 shortshort: 2 2字節(jié)有符號字節(jié)有符號 ushortushort:2 2字節(jié)無符號字節(jié)無符號 intint: 4 4字節(jié)
6、有符號,最常用字節(jié)有符號,最常用 uintuint: 4 4字節(jié)無符號字節(jié)無符號 longlong: 8 8字節(jié)有符號字節(jié)有符號 ulongulong:8 8 字節(jié)無符號字節(jié)無符號各類型表示的數(shù)據(jù)類型見表各類型表示的數(shù)據(jù)類型見表2-32-37 72.1.3 2.1.3 浮點類型浮點類型 floatfloat: 4 4字節(jié)浮點數(shù),常用。例如:字節(jié)浮點數(shù),常用。例如:35.0f35.0fdoubledouble: 8 8字節(jié)浮點數(shù),常用。例如:字節(jié)浮點數(shù),常用。例如:2.7E+232.7E+23decimaldecimal:1616字節(jié)浮點數(shù),特殊的浮點數(shù),精度高字節(jié)浮點數(shù),特殊的浮點數(shù),精度高
7、適用于金融、貨幣等需要高精度數(shù)值的領(lǐng)域。適用于金融、貨幣等需要高精度數(shù)值的領(lǐng)域。 其類型指定符為其類型指定符為M M(或(或m m)。)。 例如:例如: decimal y = 9999999999999999999999999m; decimal y = 9999999999999999999999999m; floatfloat和和doubledouble的浮點數(shù)格式與計算機組成原理介紹的的浮點數(shù)格式與計算機組成原理介紹的IEEE754 IEEE754 規(guī)定的格式相同規(guī)定的格式相同 各類型表示的數(shù)據(jù)類型見表各類型表示的數(shù)據(jù)類型見表2-42-48 82.1.4 2.1.4 布爾型布爾型 u
8、用用boolbool表示,表示,boolbool類型只有兩個值類型只有兩個值truetrue和和falsefalse。 例如:例如: boolbool isExistisExist = false; = false; boolbool b = (i0 & i0 & iz) & (xz) & (x 100 | i 100 | i 0) Console.WriteLineConsole.WriteLine(成績不在成績不在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)語句循環(huán)語句u 包括:包括: forfor語句語句 whilewhile語句語句 do-whiledo-while語句語句 foreachforeach語句,用于對集合、數(shù)組進行操作。語句,用于對集合、數(shù)組進行操作。 43432.6.2 2.6.2 循環(huán)語句(續(xù))循環(huán)語句(續(xù))forfo
11、r語句語句一般形式:一般形式:for (for (初始值初始值; ;循環(huán)條件循環(huán)條件; ;循環(huán)控制循環(huán)控制) ) 語句序列語句序列 4444例例2-4.2-4.使用使用forfor語句控制循環(huán)語句控制循環(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)語句循環(huán)語句( (續(xù)續(xù)) )u foreachforeach語句語句 foreachforeach語句用于逐個提取集合中的元素,并對集合語句用于逐個提取集合中的元素,并對集合中每個元素執(zhí)行語句序列中操作的場合。一般形式為:中每個元素執(zhí)行語句序列中操作的場合。一般形式為: foreachforeach ( ( 類型類型 標識符標識符 in in 表達式表
14、達式 ) ) 語句序列語句序列 注意注意(1 1)循環(huán)變量是一個只讀型的局部變量循環(huán)變量是一個只讀型的局部變量。 (2 2)循環(huán)變量類型必須和表達式所包含的集合元素循環(huán)變量類型必須和表達式所包含的集合元素的類型一致的類型一致46462.6.2 2.6.2 循環(huán)語句循環(huán)語句( (續(xù)續(xù)) )判斷下列語句是否正確判斷下列語句是否正確, ,并說明原因:并說明原因: 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)變量是一個只讀型的局部循環(huán)變量是一個只讀型的局部變量變量)問題問題2 2:float test float test (循環(huán)變量類型必須和表達式所包含的節(jié)元素類型一致)(循環(huán)變量類型必須和表達式所包含的節(jié)元素類型一致)例題例題2-52-547472.6.2 2.6.2 循環(huán)語句(續(xù))循環(huán)語句(續(xù))whilewhile語句語句一般形式:一般形式: while (while (條件條件) ) 語句序列語句序列 循環(huán)體內(nèi)的程序可能會執(zhí)行多次,
16、也可能一次也不執(zhí)行。循環(huán)體內(nèi)的程序可能會執(zhí)行多次,也可能一次也不執(zhí)行。例題例題2-62-648482.6.2 2.6.2 循環(huán)語句(續(xù))循環(huán)語句(續(xù))do-whiledo-while一般形式:一般形式: dodo 語句序列語句序列 while (while (條件條件);); 循環(huán)體內(nèi)的程序至少會執(zhí)行一次,然后再判斷條件是否為循環(huán)體內(nèi)的程序至少會執(zhí)行一次,然后再判斷條件是否為truetrue,如果條件為,如果條件為truetrue,則繼續(xù)循環(huán)。,則繼續(xù)循環(huán)。49492.6.3 2.6.3 跳轉(zhuǎn)語句跳轉(zhuǎn)語句u1.break1.break語句語句 功能:功能:退出最近的封閉退出最近的封閉switc
17、hswitch、whilewhile、dodo- -whilewhile、forfor或或foreachforeach語句。語句。 格式:格式: break;break;5050【例例】循環(huán)接收和輸出鍵盤輸入的每一行的值,當接收的內(nèi)容為空字符串時退循環(huán)接收和輸出鍵盤輸入的每一行的值,當接收的內(nèi)容為空字符串時退出。出。 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(請輸入一個字符串(直接回車退出)請輸入一個字符串(直接回車退出):);:); 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)語句跳轉(zhuǎn)語句 ( (續(xù)續(xù)) )u2.continue2.continue語句語句 功能:功能:將控制傳遞給下一個將控制傳遞給下一個whilewhile、do-whiledo-while、forfor或或foreachforeach,繼續(xù)執(zhí)行下一次循環(huán)。,繼續(xù)執(zhí)行下一次循環(huán)。 格式:格式: continue ;continue ;52522.6.3 2.6.3 跳轉(zhuǎn)語句跳轉(zhuǎn)語句 ( (續(xù)續(xù)) )u3.goto3.goto語句語句僅在下面兩種情況下才可能會使用僅在下面兩種情況下才可能會使用gotogoto語句:語句:(1 1)用于)用于sw
20、itchswitch語句中從一個語句中從一個casecase標簽轉(zhuǎn)到另一個標簽轉(zhuǎn)到另一個casecase標標簽處。簽處。(2 2)用于直接退出到多重嵌套循環(huán)的外部。)用于直接退出到多重嵌套循環(huán)的外部。不建議使用不建議使用gotogoto語句!語句!53532.6.3 2.6.3 跳轉(zhuǎn)語句跳轉(zhuǎn)語句 ( (續(xù)續(xù)) )u4.return4.return語句語句 功能:功能:將控制返回到出現(xiàn)將控制返回到出現(xiàn)returnreturn語句的函數(shù)成語句的函數(shù)成員的調(diào)用方。員的調(diào)用方。 格式:格式: return return 表達式表達式; 其中表達式為可選項,如果該函數(shù)成員的返回其中表達式為可選項,如果該
21、函數(shù)成員的返回類型不為類型不為nullnull,則,則returnreturn語句必須使用表達式返回這語句必須使用表達式返回這個類型的值,否則個類型的值,否則returnreturn語句不能使用表達式。語句不能使用表達式。5454【例例2-92-9】循環(huán)與跳轉(zhuǎn)綜合舉例循環(huán)與跳轉(zhuǎn)綜合舉例 。55552.6.4 2.6.4 異常處理異常處理 異??梢砸詢煞N不同的方式引發(fā):異常可以以兩種不同的方式引發(fā):C#C#語句和表達式執(zhí)行過程中激發(fā)了某個異常的條件,語句和表達式執(zhí)行過程中激發(fā)了某個異常的條件,使得操作無法正常結(jié)束,從而引發(fā)異常。例如整數(shù)除使得操作無法正常結(jié)束,從而引發(fā)異常。例如整數(shù)除法操作分母為
22、零時將拋出一個異常。法操作分母為零時將拋出一個異常。throwthrow語句無條件,即時的拋出異常。語句無條件,即時的拋出異常。trytry語句提供了一種機制來捕捉執(zhí)行過程中發(fā)生的語句提供了一種機制來捕捉執(zhí)行過程中發(fā)生的異常。以下是它的三種可能的形式:異常。以下是它的三種可能的形式:try-catchtry-catchtry-finallytry-finallytry-catch-finallytry-catch-finally56562.6.4 2.6.4 異常處理異常處理 1.try-catch1.try-catch語句語句trytry 語句序列語句序列 catchcatch(異常類型(異
23、常類型 標識符)標識符) 異常處理異常處理 在程序運行正常的時候,執(zhí)行在程序運行正常的時候,執(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語句語句trytry 語句序列語句序列 catchcatch(異常類型(異常類型 標識符)標識符) 異常處理異常處理 finallyfinally 語句序列語句序列 例題例題2-102-1058583.throw3.throw語句語句 格式:格式:throw throw 表達式表達式; 拋出表達式的值。拋出表達式的值。 注意表達式類型必須是注意表達式類型必須是System.ExceptionSystem.Exception或從或從System.ExcSystem.Exceptioneption派生的類的類型。派生的類的類型。 throwthrow也可以不帶表達式,不帶表達式的也可以不帶表達式,不帶表達式的throwthrow語句語句只能用在只能用在catchcatch塊中,在這種情況下,它重
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋建筑實習報告錦集5篇
- 學生撒謊檢討書15篇
- 教育目的心得模板10篇
- 產(chǎn)科護士工作心得體會8篇
- 疾病查房-帕金森病(護理類)課件
- 海事處廉政教育月黨課
- 七年級信息技術(shù)教案
- 七年級美術(shù)的說課稿10篇
- 浙江省紹興市職業(yè)教育中心2024-2025學年高一上學期期中考試中國特色社會主義試題
- 借款協(xié)議書(2篇)
- MOOC 心理健康與創(chuàng)新能力-電子科技大學 中國大學慕課答案
- 黃蒿界礦井及選煤廠建設(shè)項目環(huán)境影響報告書
- MOOC 數(shù)字電路分析與設(shè)計-浙江大學 中國大學慕課答案
- 感動中國人物張桂梅心得體會(30篇)
- 2024年云南昆明市公安局文職輔警招聘筆試參考題庫附帶答案詳解
- 采購計劃員年終工作總結(jié)
- 技術(shù)總監(jiān)年度述職報告
- 第十四章出口管制課件
- 常用井下工具原理與用途課件
- 廣東省東莞市2023-2024學年高一上學期期末生物試題
- 腦病科中醫(yī)健康宣教課件
評論
0/150
提交評論