第2章變量與數(shù)據(jù)類型_第1頁
第2章變量與數(shù)據(jù)類型_第2頁
第2章變量與數(shù)據(jù)類型_第3頁
第2章變量與數(shù)據(jù)類型_第4頁
第2章變量與數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Visual C# Visual C# 案例教程案例教程lC#C#的語法特征的語法特征 在在C#C#中標識符不能用保留字命名,并且標志符中標識符不能用保留字命名,并且標志符對大小寫敏感。比如對大小寫敏感。比如class AAclass AA、class Aaclass Aa與與class aaclass aa定義了定義了3 3個不同的類。而且程序的每個不同的類。而且程序的每條語句都必須以分號條語句都必須以分號; ;結(jié)束。結(jié)束。在在C#C#中,使用變量之前,必須首先聲明它。變量中,使用變量之前,必須首先聲明它。變量聲明的一般格式為:聲明的一般格式為: 修飾符修飾符 數(shù)據(jù)類型數(shù)據(jù)類型 變量名;變量

2、名; 在在C#C#中,變量在程序中使用它之前,必須首先被中,變量在程序中使用它之前,必須首先被聲明,否則會發(fā)生編譯錯誤,并盡量在使用前對聲明,否則會發(fā)生編譯錯誤,并盡量在使用前對變量初始化。應養(yǎng)成為所有變量指定初始值的良變量初始化。應養(yǎng)成為所有變量指定初始值的良好編程習慣。好編程習慣。常量就是在程序執(zhí)行過程中,其值固定不變的量。常量就是在程序執(zhí)行過程中,其值固定不變的量。常量的聲明格式:常量的聲明格式: 修飾符修飾符 const const 常量類型常量類型 常量名常量名= =值值; ;可以在一行中聲明多個常量,但它們必須具有相可以在一行中聲明多個常量,但它們必須具有相同的訪問級別。要在一行中

3、聲明多個常量,可用同的訪問級別。要在一行中聲明多個常量,可用一個逗號和一個空格分隔聲明,如下例所示:一個逗號和一個空格分隔聲明,如下例所示: const int Four=4,Five=5,Six=6; const int Four=4,Five=5,Six=6; l每個變量都具有一個類型,以確定哪些值可每個變量都具有一個類型,以確定哪些值可以存儲在該變量中。程序在運行時,需要根以存儲在該變量中。程序在運行時,需要根據(jù)變量的數(shù)據(jù)類型為變量分配內(nèi)存。在據(jù)變量的數(shù)據(jù)類型為變量分配內(nèi)存。在C#中中提供的數(shù)據(jù)類型包括兩大類:值類型和引用提供的數(shù)據(jù)類型包括兩大類:值類型和引用類型類型,其中引用類型包括其

4、中引用類型包括string和和object,以及,以及我們后面會學到的類和數(shù)組。我們后面會學到的類和數(shù)組。 lC#C#支持支持8 8種整型:種整型:sbyte,byte,short,ushort,int,uint,longsbyte,byte,short,ushort,int,uint,long和和ulongulong。8 8位有符號整型位有符號整型sbytesbyte。 8 8位無符號整型位無符號整型bytebyte。1616位有符號整型位有符號整型shortshort。 1616位無符號整型位無符號整型ushortushort。3232位有符號整型位有符號整型intint。 3232位無符

5、號整型位無符號整型uintuint。6464位有符號整型位有符號整型longlong。 6464位無符號整型位無符號整型ulongulong。lboolbool數(shù)據(jù)類型是被解釋為數(shù)據(jù)類型是被解釋為truetrue或或falsefalse的無符的無符號值號值, , 默認值是默認值是falsefalse。如果某個變量只能包。如果某個變量只能包含含“真真/ /假假”,“是是/ /否否”或或“開開/ /關關”信息,信息,則將它聲明為則將它聲明為boolbool類型。類型。bool m_flag1=true; /bool m_flag1=true; /正確正確bool m_flag2=false; /b

6、ool m_flag2=false; /正確正確bool m_flag3=(98); /bool m_flag3=(98); /正確正確l計算機處理信息的一項主要內(nèi)容就是字符。計算機處理信息的一項主要內(nèi)容就是字符。字符包括:數(shù)字字符,英文字母,表達符號字符包括:數(shù)字字符,英文字母,表達符號等。字符類型的數(shù)據(jù)為一個字符,等。字符類型的數(shù)據(jù)為一個字符,C#C#采用采用UnicodeUnicode字符集。一個字符集。一個UnicodeUnicode字符為兩個字字符為兩個字節(jié)(節(jié)(1616位),可以用于表示世界上多數(shù)語言,位),可以用于表示世界上多數(shù)語言,適于軟件國際化。適于軟件國際化。 如:按以下方

7、法定義一個字符變量并進行賦值。如:按以下方法定義一個字符變量并進行賦值。char m_myChar1=B;char m_myChar1=B;char m_myChar2=1;char m_myChar2=1;l字符串用于存儲一個字符串用于存儲一個UnicodeUnicode字符。下面給出字符。下面給出字符串變量的定義和賦值示例:字符串變量的定義和賦值示例:string myStr1=“Hello”;string myStr1=“Hello”;string myStr2=“C#!”;string myStr2=“C#!”;l可以使用可以使用“+”+”將兩個字符串連接起來,如:將兩個字符串連接起來

8、,如:string myStr3= myStr1+ myStr2; string myStr3= myStr1+ myStr2; /+ /+運算符是用來連接字符串的。運算符是用來連接字符串的。string myStr4= Hello+C#!;string myStr4= Hello+C#!;l而如果想訪問單個字符,所要做的就是訪問而如果想訪問單個字符,所要做的就是訪問下標,請用下標,請用“ ” ”運算符訪問:運算符訪問:如:如:char firstCh= myStr30; char firstCh= myStr30; / /此時此時firstCh =HfirstCh =Hl當比較兩個字符串是否

9、相等時,簡單地使用當比較兩個字符串是否相等時,簡單地使用“=”=”(兩個(兩個= =)比較操作符:)比較操作符:如:如:if(myStr1= myStr2)if(myStr1= myStr2) lC#C#中用兩種數(shù)據(jù)類型來表示小數(shù):中用兩種數(shù)據(jù)類型來表示小數(shù):floatfloat(單(單精度)和精度)和doubledouble(雙精度)。(雙精度)。 表表2-1 C#2-1 C#中浮點類型的特點中浮點類型的特點浮點類型浮點類型 舉舉 例例 取值范圍取值范圍 描描 述述floatfloatfloat float val1=2.13F; val1=2.13F; +/-1.5E-45+/-1.5E-

10、45+/-3.4E38 +/-3.4E38 32-bit32-bit單精度單精度浮點數(shù)浮點數(shù) doubledoubleDouble Double val2=5.56D; val2=5.56D; +/-5.0E-324+/-5.0E-324+/-1.7E308 +/-1.7E308 64-bit64-bit雙精度雙精度浮點數(shù)浮點數(shù) lC#C#對實型常量默認為對實型常量默認為doubledouble類型。可以在實型常量類型。可以在實型常量后用后用“f”f”表示為單精度浮點數(shù);用表示為單精度浮點數(shù);用”d”d”的表示為的表示為雙精度浮點數(shù)。雙精度浮點數(shù)。l當表達式中存在一個浮點類型的值,所有其他類型

11、當表達式中存在一個浮點類型的值,所有其他類型的數(shù)據(jù)都要被轉(zhuǎn)換成浮點類型,才能執(zhí)行運算。的數(shù)據(jù)都要被轉(zhuǎn)換成浮點類型,才能執(zhí)行運算。 int x=3;int x=3; float y=3.1415926f; float y=3.1415926f; float z=x+y; / float z=x+y; /在這里在這里x x必須轉(zhuǎn)換成浮點類型必須轉(zhuǎn)換成浮點類型3.03.0,才能與,才能與y y相加。相加。l由由decimaldecimal關鍵字定義的變量可以表示關鍵字定義的變量可以表示128128位位數(shù)據(jù)類型。它所表示的范圍是數(shù)據(jù)類型。它所表示的范圍是1.0E-281.0E-28 7.9E287.9

12、E28,具有,具有2828至至2929位有效數(shù)字。同浮點類位有效數(shù)字。同浮點類型相比,小數(shù)類型具有更高的精度和更小的型相比,小數(shù)類型具有更高的精度和更小的取值范圍。取值范圍。定義一個小數(shù)類型變量并賦值時,使用定義一個小數(shù)類型變量并賦值時,使用m m或或M M后綴后綴以表明它是一個小數(shù)類型。以表明它是一個小數(shù)類型。 如果省略了如果省略了m m或或M M,在變量被賦值之前,它將被編,在變量被賦值之前,它將被編譯器認作譯器認作doubledouble型,從而導致編譯錯誤。型,從而導致編譯錯誤。 1 1、隱式轉(zhuǎn)換(自動轉(zhuǎn)換)、隱式轉(zhuǎn)換(自動轉(zhuǎn)換)l隱式轉(zhuǎn)換是在表達式運算過程中自動完成的,隱式轉(zhuǎn)換是在表

13、達式運算過程中自動完成的,其基本規(guī)則是,在不丟失數(shù)據(jù)的情況下,占其基本規(guī)則是,在不丟失數(shù)據(jù)的情況下,占用字節(jié)少的可以自動向占用字節(jié)多的轉(zhuǎn)換。用字節(jié)少的可以自動向占用字節(jié)多的轉(zhuǎn)換。參見表參見表2-2 2-2 數(shù)據(jù)類型隱式轉(zhuǎn)換。數(shù)據(jù)類型隱式轉(zhuǎn)換。當一個數(shù)值型數(shù)據(jù)前面與字符串連接時,將隱式當一個數(shù)值型數(shù)據(jù)前面與字符串連接時,將隱式轉(zhuǎn)換成字符串。例如:轉(zhuǎn)換成字符串。例如:Console.WriteLine Console.WriteLine (s=+3.2);(s=+3.2);輸出結(jié)果為:輸出結(jié)果為:s=3.2s=3.2。l隱式數(shù)值轉(zhuǎn)換可概括為:隱式數(shù)值轉(zhuǎn)換可概括為:整型可隱式轉(zhuǎn)換到任何數(shù)值數(shù)據(jù)類型(

14、浮點型,整型可隱式轉(zhuǎn)換到任何數(shù)值數(shù)據(jù)類型(浮點型,decimaldecimal類型)。類型)。在整型內(nèi)或浮點型內(nèi)精度低的數(shù)據(jù)類型轉(zhuǎn)換到精在整型內(nèi)或浮點型內(nèi)精度低的數(shù)據(jù)類型轉(zhuǎn)換到精度高的數(shù)據(jù)類型。度高的數(shù)據(jù)類型。不存在從有符號類型到無符號類型的隱式轉(zhuǎn)換。不存在從有符號類型到無符號類型的隱式轉(zhuǎn)換。不存在浮點型和不存在浮點型和decimaldecimal類型間的隱式轉(zhuǎn)換。類型間的隱式轉(zhuǎn)換。不存在到不存在到charchar類型的隱式轉(zhuǎn)換。類型的隱式轉(zhuǎn)換。不能將存儲大小較大的類型隱式轉(zhuǎn)換為存儲大小不能將存儲大小較大的類型隱式轉(zhuǎn)換為存儲大小較小的類型。較小的類型。2 2、顯式轉(zhuǎn)換(強制類型轉(zhuǎn)換)、顯式轉(zhuǎn)換

15、(強制類型轉(zhuǎn)換)l顯式轉(zhuǎn)換又稱強制類型轉(zhuǎn)換,我們用強制轉(zhuǎn)顯式轉(zhuǎn)換又稱強制類型轉(zhuǎn)換,我們用強制轉(zhuǎn)換表達式將表達式顯示轉(zhuǎn)換為給定類型,格換表達式將表達式顯示轉(zhuǎn)換為給定類型,格式為:式為:( (類型類型)()(表達式表達式) )顯式轉(zhuǎn)換除了這種轉(zhuǎn)換方式外,還可以用顯式轉(zhuǎn)換除了這種轉(zhuǎn)換方式外,還可以用ConvertConvert類將一個類將一個.Net.Net基本數(shù)據(jù)類型轉(zhuǎn)換為另一基本數(shù)據(jù)類型轉(zhuǎn)換為另一個個.Net.Net基本數(shù)據(jù)類型?;緮?shù)據(jù)類型。另外,所有的基本數(shù)據(jù)型都可以用另外,所有的基本數(shù)據(jù)型都可以用ToString()ToString()方方法轉(zhuǎn)換為字符串。對數(shù)值型字符串,通常用法轉(zhuǎn)換為字符

16、串。對數(shù)值型字符串,通常用ParseParse方法轉(zhuǎn)行成數(shù)字。方法轉(zhuǎn)行成數(shù)字。 可以通過使用可以通過使用 String.Format String.Format 方法或方法或 Console.Write Console.Write 方法(它調(diào)用方法(它調(diào)用 String.FormatString.Format)來設置數(shù)值結(jié)果的格式。通)來設置數(shù)值結(jié)果的格式。通過格式字符串指定格式。表過格式字符串指定格式。表2-32-3包含受支持的包含受支持的標準格式字符串。格式字符串采用以下形式:標準格式字符串。格式字符串采用以下形式:Axx,Axx,,其中,其中 A A 是格式說明符,是格式說明符,xxxx

17、 是精度說是精度說明符。格式說明符控制應用于數(shù)值的格式類明符。格式說明符控制應用于數(shù)值的格式類型,而精度說明符則控制格式化輸出的有效型,而精度說明符則控制格式化輸出的有效位數(shù)或小數(shù)位數(shù)。位數(shù)或小數(shù)位數(shù)。lC#C#完全支持完全支持C C語言中的算術(shù)、關系、邏輯運語言中的算術(shù)、關系、邏輯運算符及它們構(gòu)成的表達式。主要的運算符有:算符及它們構(gòu)成的表達式。主要的運算符有:算術(shù)運算符:算術(shù)運算符:+ +、- -、* *、/ /、% %增量運算符增量運算符(+)(+)與減量運算符與減量運算符(-)(-)關系運算符:關系運算符: 、 =、=、!、!= =、=、isis、asas條件運算符:條件運算符: “

18、“?:?:”逗號運算符逗號運算符: ,: ,邏輯運算符邏輯運算符: &: &、|、!、!類型運算符:類型運算符:typeoftypeofl注意事項如下:注意事項如下:1 1、其中、其中%(%(求模運算符求模運算符, ,或稱求余運算符或稱求余運算符,%,%兩側(cè)應為整兩側(cè)應為整型數(shù)據(jù)型數(shù)據(jù), ,浮點類型數(shù)據(jù)或十進制類型數(shù)據(jù)浮點類型數(shù)據(jù)或十進制類型數(shù)據(jù), ,如如7%47%4的的值為值為3,7%2.53,7%2.5的值為的值為2)2)。2 2、在邏輯表達式的求值過程中,不是所有的邏輯運、在邏輯表達式的求值過程中,不是所有的邏輯運算符都被執(zhí)行。示例:假設算符都被執(zhí)行。示例:假設x x是一個是一個bool

19、bool值或邏輯值或邏輯表達式,表達式,bool_expressionbool_expression是一個邏輯表達式。對是一個邏輯表達式。對于于“x&(bool_expression)”x&(bool_expression)”而言。只有而言。只有x x為為truetrue時,才繼續(xù)判斷值。如果時,才繼續(xù)判斷值。如果x x為為falsefalse時,邏輯表達式時,邏輯表達式的值已經(jīng)確定為的值已經(jīng)確定為falsefalse,不需繼續(xù)求值。其他情況,不需繼續(xù)求值。其他情況依次類推。依次類推。 多學一點多學一點asas操作符操作符l操作符操作符asas通過引用轉(zhuǎn)換,將一個值顯示轉(zhuǎn)換通過引用轉(zhuǎn)換,將一個

20、值顯示轉(zhuǎn)換成指定的引用類型。與顯示類型轉(zhuǎn)換不同,成指定的引用類型。與顯示類型轉(zhuǎn)換不同,操作符操作符asas不會產(chǎn)生任何異常。如果轉(zhuǎn)換失敗不會產(chǎn)生任何異常。如果轉(zhuǎn)換失敗結(jié)果值為結(jié)果值為“null”null”,并且結(jié)果總是一個值。,并且結(jié)果總是一個值。例如:例如:string s=x as string;string s=x as string;雖然字符型雖然字符型不能轉(zhuǎn)換為字符串類型。但是,程序同樣可以通不能轉(zhuǎn)換為字符串類型。但是,程序同樣可以通過編譯。過編譯。【多學一點】【多學一點】typeoftypeof操作符操作符ltypeoftypeof的作用是用于獲得系統(tǒng)原型對象的類的作用是用于獲得系統(tǒng)原型對象的類型。形式如下:型。形式如下: typeof(typeof(要獲得系統(tǒng)原型對象的類型要獲得系統(tǒng)原型對象的類型) )。typeof(int) =System.Int32typeof(int) =System.Int32typeof(long) =System.Int64typeof(long) =System.Int64typeof(double) =System.Doubletypeof(dou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論