




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、主 編 魯 立 張松慧中國(guó)水利水電出版社2.1 數(shù)據(jù)類型數(shù)據(jù)類型是程序設(shè)計(jì)的基礎(chǔ),在進(jìn)行程序設(shè)計(jì)時(shí),必須讓計(jì)算機(jī)了解需要處理的是什么數(shù)據(jù),以什么方式保存和顯示數(shù)據(jù)。為此,C#定義了很多數(shù)據(jù)類型,對(duì)程序中聲明的保存信息的變量必須說明它的數(shù)據(jù)類型。本節(jié)主要介紹常用的數(shù)據(jù)類型及其基本用法。 第2章 變量與表達(dá)式 2.1.1 數(shù)據(jù)類型的分類C#提供的數(shù)據(jù)類型可以分為兩大類,一類是值類型,另一類是引用類型。值類型又劃分為簡(jiǎn)單類型、枚舉類型和結(jié)構(gòu)類型;引用類型則分為類類型、接口類型、數(shù)組類型和委托類型。 2.1.2 值類型值類型是一種表示實(shí)際值的數(shù)據(jù)類型,C#的值類型包括:簡(jiǎn)單類型、枚舉類型和結(jié)構(gòu)類型3種
2、。1.簡(jiǎn)單類型C#提供已經(jīng)定義好的簡(jiǎn)單類型,包括:整型、實(shí)型、布爾型和字符型。(1)整型整型是指數(shù)據(jù)的值是整數(shù)。根據(jù)變量在內(nèi)存中所占的位數(shù)不同,C#語言提供8中整型分別是:短字節(jié)型(sbyte)、字節(jié)型(byte)、短整型(short)、無符號(hào)短整型(ushort)、整型(int)、無符號(hào)整型(uint)、長(zhǎng)整型(long)、無符號(hào)長(zhǎng)整型(ulong)。這些不同的整型用來存儲(chǔ)不同范圍的數(shù)值,占用不同的內(nèi)存空間,數(shù)據(jù)類型取值范圍說明類型指定符sbyte-1281271字節(jié)有符號(hào)整數(shù)byte02551字節(jié)無符號(hào)整數(shù)short-32768327672字節(jié)有符號(hào)整數(shù)ushort0655352字節(jié)無符號(hào)
3、整數(shù)int-214748364821474836474字節(jié)有符號(hào)整數(shù)uint042949672954字節(jié)無符號(hào)整數(shù)Ulong-922337203685477580892233720368547758078字節(jié)有符號(hào)整數(shù)Lulong0184467440737095516158字節(jié)無符號(hào)整數(shù)UL(2)實(shí)型實(shí)數(shù)類型是一種同時(shí)使用整數(shù)部分和小數(shù)部分表示數(shù)值的類型,分為單精度(float)、雙精度(double)和小數(shù)型(decimal),它們的區(qū)別在于取值范圍和精度不同。計(jì)算機(jī)對(duì)實(shí)數(shù)的運(yùn)算能力大大低于整數(shù),單精度類型常用于對(duì)精度要求不高的計(jì)算,對(duì)結(jié)果要求精確的使用雙精度型,decimal類型適合用于財(cái)
4、務(wù)和貨幣計(jì)算。 數(shù)據(jù)類型取值范圍說明類型指定符float1.510-453.410384字節(jié)單精度實(shí)數(shù)Fdouble5.010-3241.7103088字節(jié)雙精度實(shí)數(shù)Ddecimal1.010-287.9102816字節(jié)實(shí)數(shù)M(3)布爾型布爾型(bool數(shù)據(jù)類型)是只有true和false2個(gè)無符號(hào)值的類型。如果變量只能表示“是/否”或“真/假”信息的,則將它定義為bool類型;可以將布爾型值賦值給布爾型變量 (4)字符類型字符類型用char表示,為單個(gè)Unicode字符,一個(gè)Unicode字符是2個(gè)字節(jié)長(zhǎng)度;字符包括數(shù)字字符、英文字符、表達(dá)符號(hào)等等,字符型的變量可以用單引號(hào)引起來的字符常量直
5、接賦值;不包含任何字符的字符串,稱為空字符串。 C#中提供轉(zhuǎn)義符,用來表示單引號(hào)和反斜杠等特殊的字符常數(shù),在需要表示這些特殊常數(shù)的位置,使用這些轉(zhuǎn)義符來代替字符。常用轉(zhuǎn)義符如表2-3所示。表2-3 常用轉(zhuǎn)義符轉(zhuǎn)義符字符名稱單引號(hào)雙引號(hào)反斜杠0空字符a發(fā)出一聲響鈴b退格r回車n換行2.結(jié)構(gòu)類型 程序設(shè)計(jì)中,往往需要一些復(fù)雜的數(shù)據(jù)類型來表示數(shù)據(jù)。C#中使用結(jié)構(gòu)類型(Structure)把多個(gè)不同類型的數(shù)據(jù)組合到一起。結(jié)構(gòu)類型可以定義常數(shù)、字段、屬性、方法、索引器、操作符和嵌套類型,使用結(jié)構(gòu)類型的優(yōu)點(diǎn)是節(jié)省內(nèi)存空間,可以不使用繼承或引用標(biāo)示。 結(jié)構(gòu)體是一種復(fù)合的數(shù)據(jù)類型,它允許用其他數(shù)據(jù)類型構(gòu)成一個(gè)
6、結(jié)構(gòu)類型,而一個(gè)結(jié)構(gòu)類型變量?jī)?nèi)的所有數(shù)據(jù)可以作為一個(gè)整體進(jìn)行處理。定義結(jié)構(gòu)類型的語法如下:struct 結(jié)構(gòu)體標(biāo)示符 public 類型 成員變量名1 ;public 類型 成員變量名2 ;public 類型 成員變量名3 ;.;3.枚舉類型枚舉是這樣的種數(shù)據(jù)類型:它的值有固定的范圍,在邏輯上是密不可分的整數(shù)值,這些值可以用有限個(gè)常量來敘述,例如:星期、月份等。枚舉類型使用關(guān)鍵字enum定義,語法如下:enum 枚舉名 標(biāo)示符1=整型常數(shù) ,標(biāo)示符2=整型常數(shù) ,標(biāo)示符3=整型常數(shù) ,標(biāo)示符4=整型常數(shù) ,.2.1.3 引用類型引用類型又稱對(duì)象,引用類型是不直接存儲(chǔ)變量值的,存儲(chǔ)的是引用值的地
7、址。使用時(shí),引用也可以為null,這表示當(dāng)前不引用或不指向任何對(duì)象。C#的引用類型有類、數(shù)組、委托和接口4種。這里簡(jiǎn)單介紹object(對(duì)象類型)和string(字符串類型)兩個(gè)類。 2.1.4 類型轉(zhuǎn)換在C#中,有些數(shù)據(jù)類型可以轉(zhuǎn)換為另一種數(shù)據(jù)類型。如果是一種值類型轉(zhuǎn)換為另一種值類型,或者一種引用類型轉(zhuǎn)換為另一種引用類型,比較常用的轉(zhuǎn)換方式是:隱式轉(zhuǎn)換與顯式轉(zhuǎn)換。對(duì)于不同值類型之間的轉(zhuǎn)換,可以使用Convert類提供的靜態(tài)方法。 1.隱式轉(zhuǎn)換隱式轉(zhuǎn)換就是將低精度數(shù)值轉(zhuǎn)換為高精度數(shù)值,轉(zhuǎn)換順序如表2-4所示。若,兩種變量類型是兼容的或目標(biāo)類型的取值范圍大于源類型,這樣的類型轉(zhuǎn)換就由系統(tǒng)自動(dòng)完成
8、。例如:int a=100; /定義整型變量a并賦值float b=a; /整型變量a隱式轉(zhuǎn)換為浮點(diǎn)數(shù)賦值給b 表2-4 隱式轉(zhuǎn)換源類型與目標(biāo)類型對(duì)應(yīng)表 源類型可以轉(zhuǎn)換的目標(biāo)類型sbyteshort、int、long、float、double、decimalbyteshort、ushort、int、uint、long、float、double、decimalcharushort、int、uint、long、float、double、decimalintlong、float、double、decimaluintlong、ulong、float、double、decimalshortint、lon
9、g、float、double、decimalushortint、uint、long、float、double、decimallongfloat、double、decimalulongfloat、double、decimalfloatdouble2. 顯式(強(qiáng)制)轉(zhuǎn)換在不滿足隱式轉(zhuǎn)換的情況下,必須使用顯式(強(qiáng)制)轉(zhuǎn)換。顯式(強(qiáng)制)轉(zhuǎn)換是一種指令,該指令通過編譯器強(qiáng)制將一種類型轉(zhuǎn)換為另一種類型。語法為:(目標(biāo)類型)變量或表達(dá)式例如:int a=65; /定義整型變量a并賦值short b=( short)a; /將a強(qiáng)制轉(zhuǎn)換為短整型char c=(char)a; /將a強(qiáng)制轉(zhuǎn)換為字符型3.Conv
10、ert類C#的Convert類提供多種方法來進(jìn)行顯式(強(qiáng)制)轉(zhuǎn)換,語法為:目標(biāo)類型=Convert.轉(zhuǎn)換方法(源類型)例如:int num; /定義整型變量numnum= Convert.ToInt16(78); /將字符串78強(qiáng)制轉(zhuǎn)換為整型并賦值給num 4.ToString()方法ToString()方法主要用于將一些類型的變量轉(zhuǎn)換為字符串類型。語法為:變量名. ToString()例如:int a=100;string s=a. ToString();字符串變量s的值為100。 5.Parse()方法Parse()方法用于將特定格式的字符串轉(zhuǎn)換為數(shù)值類型。語法格式為: 數(shù)值類型名. Pa
11、rse(字符串表達(dá)式) 但是,語法格式中的“字符串表達(dá)式”的值必須符合“數(shù)值類型名”對(duì)應(yīng)的數(shù)值格式要求。例如:int x=int. Parse(123); /將123轉(zhuǎn)換為整型賦值給xint y=int. Parse(123.4); /因?yàn)?23.4不符合整型的格式,所以轉(zhuǎn)換失敗int y=float. Parse(123.4); /因?yàn)?23.4符合浮點(diǎn)數(shù)型的格式,所以轉(zhuǎn)換成功 2.1.5 裝箱與拆箱對(duì)于值類型與Object類型之間的轉(zhuǎn)換,可以用裝箱和拆箱技術(shù)來實(shí)現(xiàn)。C#的類型系統(tǒng)是統(tǒng)一的。它使值類型可以被看成是對(duì)象,裝箱轉(zhuǎn)換允許將值類型隱式轉(zhuǎn)換為引用類型。裝箱的過程是:首先分配一個(gè)對(duì)象實(shí)例
12、,然后將值類型的值復(fù)制到實(shí)例中。拆箱過程是:首先檢查對(duì)象實(shí)例是否為給定值類型一個(gè)裝了箱的值,然后將該值從實(shí)例中復(fù)制出來。 1.裝箱裝箱操作將值類型隱式轉(zhuǎn)換為Object類型,為裝箱數(shù)值分配對(duì)象實(shí)例。例如:int i=123;object ob=i; /裝箱上述語句執(zhí)行結(jié)果是在堆棧中創(chuàng)建對(duì)象ob,該對(duì)象引用了堆中的int類型,該數(shù)值是賦給變量i的數(shù)值備份。2. 拆箱拆箱操作是顯式的將object類型轉(zhuǎn)換為值類型。下面語句演示了裝箱和拆箱。int i=123;object ob=i; /裝箱int j=(int)ob; /拆箱可以看出,拆箱是裝箱的逆過程,要注意的是,裝箱和拆箱需要遵守類型兼容的原
13、則。 2.2 變量與常量 知道了C#有哪些數(shù)據(jù)類型以及如何將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型,我們還需要知道C#中有哪些常量和變量以及如何定義常量和變量。2.2.1 變量 變量用來表示一個(gè)數(shù)值、一個(gè)字符串值或者一個(gè)類的對(duì)象。變量存儲(chǔ)的值可能會(huì)發(fā)生更改,但變量名保持不變。1.變量聲明C#中,變量必須先聲明后使用。聲明變量的語法為: 類型標(biāo)識(shí)符 變量名;或類型標(biāo)識(shí)符 變量名1,變量名2,變量名3.;例如,下面語句聲明了一些變量:int num; /聲明整型變量numfloat sum; /聲明浮點(diǎn)型變量sumchar ch; /聲明字符型變量ch2.變量命名規(guī)則 C#在變量聲明時(shí),變量名的命名應(yīng)該
14、遵守一些基本規(guī)則:變量名長(zhǎng)度不能超過255個(gè)字符。變量名在有效的程序范圍內(nèi)是唯一的。變量名不能是關(guān)鍵字(保留字),但可以嵌入使用關(guān)鍵字到變量名。變量名用字母開頭,不要使用數(shù)字開頭。 關(guān)鍵字是一種高級(jí)程序設(shè)計(jì)語言中屬于語言成分的特殊標(biāo)識(shí)符,用戶是不能使用這些標(biāo)識(shí)符定義各種名稱的。 2.2.2 變量的種類C#定義了7種變量,即靜態(tài)變量、實(shí)例變量、數(shù)組元素、值參數(shù)、引用參數(shù)、輸出參數(shù)和局部變量。 2.2.3 常量 常量就是值在程序整個(gè)生命周期內(nèi)始終不變的量,使用關(guān)鍵字const聲明。在使用中,不可以對(duì)常量進(jìn)行賦值。常量聲明的語法為:訪問修飾符const類型標(biāo)識(shí)符 常量名=值;例如:public co
15、nst double PI=3.1415926;const int dayinyear=365; 語法中方括號(hào)表示其中的內(nèi)容是可選項(xiàng),如果采用邏輯符號(hào)“|”表示“|”兩端的內(nèi)容是或者得關(guān)系。 2.3 運(yùn)算符與表達(dá)式 運(yùn)算符是指在表達(dá)式中執(zhí)行哪些操作的符號(hào)。表達(dá)式則由常量、變量、對(duì)象以及各種運(yùn)算符組成。2.3.1 運(yùn)算符分類 按照操作數(shù)分類,C#語言提供3大類運(yùn)算符。一元運(yùn)算符:帶一個(gè)操作數(shù)的運(yùn)算符稱為“一元”運(yùn)算符,如i+。二元運(yùn)算符:帶兩個(gè)操作數(shù)的運(yùn)算符稱為“二元”運(yùn)算符,如x+y。三元運(yùn)算符:帶三個(gè)操作數(shù)的運(yùn)算符稱為“三元”運(yùn)算符,C#中只有一個(gè)三元運(yùn)算符,即條件運(yùn)算符“?:”。 2.3.
16、2 算術(shù)運(yùn)算符C#中算術(shù)運(yùn)算符就是用于常規(guī)運(yùn)算功能的符號(hào),包括:加法運(yùn)算符(+)、減法運(yùn)算符(-)、乘法運(yùn)算符(*)、除法運(yùn)算符(/)、求余運(yùn)算符(%)、自增運(yùn)算符(+)、自減運(yùn)算符(-)、要注意的是乘法、除法運(yùn)算符只適用于整數(shù)和實(shí)數(shù)之間的操作;默認(rèn)運(yùn)算返回值與精度高的類型相同。求余運(yùn)算符用來求除法的余數(shù)。 2.3.3 賦值運(yùn)算符賦值運(yùn)算符用于改變變量的值,即為變量賦值。C#中提供了一個(gè)簡(jiǎn)單賦值運(yùn)算符“=”和多個(gè)復(fù)合賦值運(yùn)算符包括:+=、-=、*=、/=、%=、=、&=、=和|=。賦值運(yùn)算符是左結(jié)合,將右邊的操作數(shù)的值賦給左邊的操作數(shù),左操作數(shù)必須是變量。C#也可以對(duì)變量進(jìn)行連續(xù)賦值,此時(shí)賦值
17、運(yùn)算是從右向左進(jìn)行。 2.3.4 關(guān)系運(yùn)算符關(guān)系運(yùn)算符用于在程序中比較兩個(gè)值大小,關(guān)系運(yùn)算的結(jié)果是布爾型。關(guān)系運(yùn)算符包括:=、!=、=。 2.3.5 邏輯運(yùn)算符邏輯運(yùn)算中,使用邏輯運(yùn)算符將運(yùn)算對(duì)象連接起來形成邏輯表達(dá)式,邏輯運(yùn)算只有兩個(gè)結(jié)果:true和false,表示真和假。 2.3.6 三目運(yùn)算符?:該運(yùn)算符是根據(jù)布爾表達(dá)式的值返回兩個(gè)值中的一個(gè)。如果條件為真,則返回第一個(gè)值;否則,返回第二個(gè)值。語法為:(布爾表達(dá)式)?值1:值22.3.7 運(yùn)算符優(yōu)先級(jí)當(dāng)一個(gè)表達(dá)式包含多個(gè)運(yùn)算符時(shí),表達(dá)式的值就由各運(yùn)算符的優(yōu)先級(jí)決定。表2-7為運(yùn)算符的優(yōu)先級(jí)描述。表2-7 運(yùn)算符優(yōu)先級(jí)(由高到低) 特殊運(yùn)算
18、符()一元運(yùn)算符+(正)、-(負(fù))、?。ㄟ壿嫹牵┏?除運(yùn)算符* 、 / 、 %加/減運(yùn)算符+ 、 -移位運(yùn)算符關(guān)系運(yùn)算符、=、is比較運(yùn)算符=、!=邏輯與運(yùn)算符&邏輯異或運(yùn)算符邏輯或運(yùn)算符|條件與運(yùn)算符&條件或運(yùn)算符|三目運(yùn)算符?:賦值運(yùn)算符=、+=、-=、*=、/=、%=2.4 輸入與輸出程序設(shè)計(jì)中,輸入與輸出是程序的必需功能。數(shù)據(jù)的輸入與輸出方式有控制臺(tái)方式和文件方式兩種??刂婆_(tái)是一個(gè)操作系統(tǒng)窗口,用戶可通過鍵盤輸入文本,并從顯示器讀取文本輸出。C#語言的控制臺(tái)I/O主要通過命名空間System中的Console類實(shí)現(xiàn)的。該類給出了標(biāo)準(zhǔn)的輸入和輸出方法。 1.控制臺(tái)輸入控制臺(tái)輸入包含兩個(gè)實(shí)現(xiàn)控制臺(tái)輸入的方法:Read()和ReadLine()。Read()方法每次從標(biāo)準(zhǔn)輸入流中讀取一個(gè)字符(此時(shí)程序運(yùn)行到Read()語句暫停,直到輸入任意字符并按回車鍵才返回繼續(xù)運(yùn)行),程序?qū)⒔邮盏淖址鱥nt型值返回給變量。如果輸入流沒有字符,則返回-1。Read()方法使用的語法格式為:Console. Read(); ReadLine()方法用于從控制臺(tái)一次讀取一行字符串,直到遇到回車鍵才返回讀取的字符串,但此字符串不包含回車鍵和換行符;如果接收無效字符串,則ReadLine()方法返回null。ReadLine()方法的語法格式為:Con
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 長(zhǎng)春工業(yè)大學(xué)人文信息學(xué)院《BM安裝工程計(jì)量》2023-2024學(xué)年第二學(xué)期期末試卷
- 南昌理工學(xué)院《現(xiàn)代控制》2023-2024學(xué)年第二學(xué)期期末試卷
- 昆明幼兒師范高等專科學(xué)?!督鹑趯W(xué)前沿動(dòng)態(tài)》2023-2024學(xué)年第二學(xué)期期末試卷
- 信陽農(nóng)林學(xué)院《臺(tái)港暨海外華文文學(xué)研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安體育學(xué)院《大數(shù)據(jù)機(jī)器學(xué)習(xí)》2023-2024學(xué)年第二學(xué)期期末試卷
- 濰坊工商職業(yè)學(xué)院《機(jī)器學(xué)習(xí)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東信息工程職業(yè)學(xué)院《UML及形式化建?!?023-2024學(xué)年第二學(xué)期期末試卷
- 山西旅游職業(yè)學(xué)院《化工原理(Ⅰ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湘潭醫(yī)衛(wèi)職業(yè)技術(shù)學(xué)院《信號(hào)分析與處理》2023-2024學(xué)年第二學(xué)期期末試卷
- 麗水職業(yè)技術(shù)學(xué)院《詩歌導(dǎo)讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 羅森便利店QSC標(biāo)準(zhǔn)課件講義
- 售后服務(wù)的流程圖
- 讀《讀懂孩子》讀書心得體會(huì)
- 《勞動(dòng)合同法》普法宣傳資料
- 二年級(jí)下冊(cè)科學(xué)教案-2.3科技產(chǎn)品體驗(yàn)會(huì) 大象版
- 退役軍人優(yōu)待證申領(lǐng)表
- Q∕SY 19001-2017 風(fēng)險(xiǎn)分類分級(jí)規(guī)范
- 勞務(wù)分包項(xiàng)目經(jīng)理崗位職責(zé)
- 幼兒繪本故事:奇怪的雨傘店
- 鋼琴基礎(chǔ)教程教案
- 糖基轉(zhuǎn)移酶和糖苷酶課件(PPT 111頁)
評(píng)論
0/150
提交評(píng)論