C#數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第1頁(yè)
C#數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第2頁(yè)
C#數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第3頁(yè)
C#數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第4頁(yè)
C#數(shù)據(jù)類型運(yùn)算符與表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第3章章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式數(shù)據(jù)類型、運(yùn)算符與表達(dá)式內(nèi)容提要:內(nèi)容提要: C#的主要數(shù)據(jù)類型以及類型標(biāo)識(shí)符的主要數(shù)據(jù)類型以及類型標(biāo)識(shí)符 數(shù)據(jù)類型的轉(zhuǎn)換數(shù)據(jù)類型的轉(zhuǎn)換 常量和變量、變量的賦值常量和變量、變量的賦值 C#常用的運(yùn)算符常用的運(yùn)算符目的要求:目的要求: 掌握掌握C#的主要數(shù)據(jù)類型、常量和變量、變量的賦值的主要數(shù)據(jù)類型、常量和變量、變量的賦值 掌握掌握C#常用的各類運(yùn)算符常用的各類運(yùn)算符重點(diǎn)難點(diǎn):重點(diǎn)難點(diǎn): 類型轉(zhuǎn)換、常量和變量、算術(shù)運(yùn)算符類型轉(zhuǎn)換、常量和變量、算術(shù)運(yùn)算符(+、-) 、復(fù)合賦值運(yùn)算、復(fù)合賦值運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符符、邏輯運(yùn)算符、條件運(yùn)算符 C#中數(shù)據(jù)類型主

2、要分為兩大類:值類型和引用類中數(shù)據(jù)類型主要分為兩大類:值類型和引用類型。這里我們先講解這兩種類型,然后再討論數(shù)據(jù)類型。這里我們先講解這兩種類型,然后再討論數(shù)據(jù)類型之間的轉(zhuǎn)換。型之間的轉(zhuǎn)換。3.1.1 值類型值類型 C#中值類型包括三種:簡(jiǎn)單類型、結(jié)構(gòu)類型和枚中值類型包括三種:簡(jiǎn)單類型、結(jié)構(gòu)類型和枚舉類型。不同的類型是不同數(shù)據(jù)的集合,不同的類型舉類型。不同的類型是不同數(shù)據(jù)的集合,不同的類型在在C#中用不同的類型標(biāo)識(shí)符來(lái)表示。這里我們只介紹中用不同的類型標(biāo)識(shí)符來(lái)表示。這里我們只介紹簡(jiǎn)單類型,結(jié)構(gòu)類型和枚舉類型將在后面介紹。簡(jiǎn)單類型,結(jié)構(gòu)類型和枚舉類型將在后面介紹。 簡(jiǎn)單類型包括整數(shù)類型、浮點(diǎn)類型、

3、小數(shù)類型、簡(jiǎn)單類型包括整數(shù)類型、浮點(diǎn)類型、小數(shù)類型、字符類型和布爾類型等。字符類型和布爾類型等。 1整數(shù)類型整數(shù)類型 整數(shù)類型的數(shù)據(jù)值只能是整數(shù),計(jì)算機(jī)語(yǔ)言所提供的整數(shù)類型的數(shù)據(jù)值只能是整數(shù),計(jì)算機(jī)語(yǔ)言所提供的數(shù)據(jù)類型有一定的范圍。數(shù)據(jù)類型有一定的范圍。 2. 浮點(diǎn)類型浮點(diǎn)類型 浮點(diǎn)類型的數(shù)據(jù)包含兩種:浮點(diǎn)類型的數(shù)據(jù)包含兩種:?jiǎn)尉雀↑c(diǎn)型(單精度浮點(diǎn)型(float)和)和雙精度浮點(diǎn)型(雙精度浮點(diǎn)型(double),),其區(qū)別在于取值范圍和精度的其區(qū)別在于取值范圍和精度的不同。不同。 float類型是類型是32位寬,位寬,double類型是類型是64位寬。位寬。 單精度:取值范圍在單精度:取值范

4、圍在+ 1.510-45 3.41038之間,精度為之間,精度為7 位數(shù)。位數(shù)。雙精度:取值范圍為雙精度:取值范圍為+5.0-324 1.710308之間,精度為之間,精度為 1516位數(shù)。位數(shù)。 3 小數(shù)類型小數(shù)類型 小數(shù)類型小數(shù)類型(decimal)占用占用16個(gè)字節(jié)個(gè)字節(jié)(128位)位),主要為了,主要為了滿足需要高精度的財(cái)務(wù)和金融計(jì)算機(jī)領(lǐng)域。滿足需要高精度的財(cái)務(wù)和金融計(jì)算機(jī)領(lǐng)域。 小數(shù)類型數(shù)據(jù)的取值范圍和精度如下:小數(shù)類型數(shù)據(jù)的取值范圍和精度如下: 取值范圍在取值范圍在+ 1.010-28 7.91028之間,精度為之間,精度為29位數(shù)。位數(shù)。 注意注意:小數(shù)類型數(shù)據(jù)的后面必須跟小數(shù)類

5、型數(shù)據(jù)的后面必須跟m或者或者M(jìn)后綴來(lái)表示它是后綴來(lái)表示它是decimal類型的,如類型的,如3.14m、0.28m等,否則就會(huì)被解釋成標(biāo)準(zhǔn)等,否則就會(huì)被解釋成標(biāo)準(zhǔn)的浮點(diǎn)類型數(shù)據(jù),導(dǎo)致數(shù)據(jù)類型不匹配。的浮點(diǎn)類型數(shù)據(jù),導(dǎo)致數(shù)據(jù)類型不匹配。 例:例: 138f 代表代表float類型的數(shù)值類型的數(shù)值138.0 518u 代表代表uint類型的數(shù)值類型的數(shù)值518 36897123ul 代表代表ulong類型的數(shù)值類型的數(shù)值36897123 22.1m 代表代表decimal類型的數(shù)值類型的數(shù)值22.1 12.68 代表代表double類型的數(shù)值類型的數(shù)值12.68 36 代表代表int類型的數(shù)值類型

6、的數(shù)值36 剛開(kāi)始學(xué)習(xí),不可能一下子掌握這么多數(shù)值類型,先牢剛開(kāi)始學(xué)習(xí),不可能一下子掌握這么多數(shù)值類型,先牢記以下幾種:記以下幾種: int型型 :凡是要表示帶符號(hào)的整數(shù)時(shí),先考慮使用:凡是要表示帶符號(hào)的整數(shù)時(shí),先考慮使用int型;型; uint型型 :凡是需要不帶符號(hào)的整數(shù)時(shí),先考慮使用:凡是需要不帶符號(hào)的整數(shù)時(shí),先考慮使用uint型;型; double型:凡是需要做科學(xué)計(jì)算,并且精度要求不是很高型:凡是需要做科學(xué)計(jì)算,并且精度要求不是很高 時(shí),考慮使用時(shí),考慮使用double型。型。 4. 字符類型字符類型 字符類型的類型標(biāo)識(shí)符是字符類型的類型標(biāo)識(shí)符是char,采用采用Unicode字符集

7、。字符集。 凡是在單引號(hào)中的一個(gè)字符,就是一個(gè)字符常數(shù),凡是在單引號(hào)中的一個(gè)字符,就是一個(gè)字符常數(shù), 如:如: 你你、 A、 ?、 6、2 注意注意: 在表示一個(gè)字符常數(shù)時(shí),單引號(hào)內(nèi)的有效字符在表示一個(gè)字符常數(shù)時(shí),單引號(hào)內(nèi)的有效字符數(shù)量必須且只能是一個(gè),并且不能是單引號(hào)或者反斜杠數(shù)量必須且只能是一個(gè),并且不能是單引號(hào)或者反斜杠()。)。 為了表示單引號(hào)和反斜杠等特殊的字符常數(shù),為了表示單引號(hào)和反斜杠等特殊的字符常數(shù),C#提提供了轉(zhuǎn)義符。供了轉(zhuǎn)義符。轉(zhuǎn)義符轉(zhuǎn)義符字符名稱字符名稱單引號(hào)單引號(hào)雙引號(hào)雙引號(hào)反斜杠反斜杠0空字符(空字符(Null)a發(fā)出一個(gè)警告發(fā)出一個(gè)警告 b倒退一個(gè)字符倒退一個(gè)字符f

8、換頁(yè)換頁(yè)n新的一行新的一行r換行并移到同一行的最前面換行并移到同一行的最前面t水平方向的水平方向的Tabv垂直方向的垂直方向的Tab C#常用的轉(zhuǎn)義符常用的轉(zhuǎn)義符如如 Console.WriteLine(“Hello,”+”+”打印出單引號(hào)打印出單引號(hào)“+”“);例例: using System; class StrDemo static void Main( ) Console.WriteLine(“FirstLinenSecondLine”); Console.WriteLine(“AtBtC”); Console.WriteLine(“DtEtF”); 5布爾類型布爾類型 布爾類型的類型

9、標(biāo)識(shí)符是布爾類型的類型標(biāo)識(shí)符是bool。 布爾類型常數(shù)只有兩種值:布爾類型常數(shù)只有兩種值:true(代表(代表“真真”)和)和false(代表(代表“假假”)。)。 布爾類型數(shù)據(jù)主要應(yīng)用在流程控制中。布爾類型數(shù)據(jù)主要應(yīng)用在流程控制中。 例:例: bool b=53; /b的值為的值為true; b=false; 3.1.2 引用類型引用類型 1. object類類 object類是系統(tǒng)提供的基類型,是所有類型的基類,類是系統(tǒng)提供的基類型,是所有類型的基類,C#中中所有的類型都直接或間接派生于對(duì)象類型。所有的類型都直接或間接派生于對(duì)象類型。 對(duì)于任一個(gè)對(duì)于任一個(gè)object變量,均可以賦以任何類

10、型的值。變量,均可以賦以任何類型的值。 double d=3.14; object obj1; obj1=d; obj1=k; 對(duì)于對(duì)于object類型的變量,聲明必須使用類型的變量,聲明必須使用object關(guān)鍵字。關(guān)鍵字。 2. string類類 一個(gè)字符串是被雙引號(hào)包含的一系列字符。一個(gè)字符串是被雙引號(hào)包含的一系列字符。 string類是專門用于對(duì)字符串進(jìn)行操作的。類是專門用于對(duì)字符串進(jìn)行操作的。 如:如: string str1=中國(guó),;中國(guó),; string str2=你好??;你好?。?string str3=str1+str2; /這相當(dāng)于這相當(dāng)于str3=中國(guó),你好!中國(guó),你好!

11、char c=str30; /取出取出str3的第一個(gè)字符,即的第一個(gè)字符,即“中中”字。字。 C#支持兩種形式的字符串常數(shù)。支持兩種形式的字符串常數(shù)。(1)常規(guī)字符串常數(shù))常規(guī)字符串常數(shù) 如:如: “this is a test” “C#程序設(shè)計(jì)教程程序設(shè)計(jì)教程” 例:例: using System; class StrDemo static void Main( ) Console.WriteLine( First0linenSecond0line ); Console.WriteLine( 你好你好a ); Console.WriteLine(“1“1t2t3 ); Console.Wr

12、iteLine(“*t*t*”); 例:例:using System;class StringDemo public static void Main( ) string str1=“A string”; string str2=Another string.; Console.WriteLine(“0n1”,str1,str2); 運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:(2)逐字字符串常數(shù))逐字字符串常數(shù) 逐字字符串常數(shù)以逐字字符串常數(shù)以開(kāi)頭,后跟一對(duì)雙引號(hào),在雙引開(kāi)頭,后跟一對(duì)雙引號(hào),在雙引號(hào)中放入字符。如:號(hào)中放入字符。如: “電子高專電子高?!?“This is a book.” 逐字字符串常數(shù)

13、同常規(guī)字符串常數(shù)的區(qū)別逐字字符串常數(shù)同常規(guī)字符串常數(shù)的區(qū)別: 在逐字字符串常數(shù)的雙引號(hào)中,每個(gè)字符都代表其最在逐字字符串常數(shù)的雙引號(hào)中,每個(gè)字符都代表其最原始的意義,在逐字字符串常數(shù)中沒(méi)有轉(zhuǎn)義字符。原始的意義,在逐字字符串常數(shù)中沒(méi)有轉(zhuǎn)義字符。 注意注意:如果要包含雙引號(hào)(),就必須在一行中使用如果要包含雙引號(hào)(),就必須在一行中使用兩個(gè)雙引號(hào)()。兩個(gè)雙引號(hào)()。string str1; /定義字符串類型定義字符串類型string str2= hello, world ; /規(guī)則字符串常數(shù):規(guī)則字符串常數(shù):hello, worldstring str3= hello, world ; /逐字字

14、符串常數(shù):逐字字符串常數(shù):hello, world string str4= hello t world ; /hello worldstring str5= hello t world ; /hello t worldstring str6=“He said Hello to you ; /Tom said Hello to youstring str7=“He said Hello to you ; /Tom said Hello to you例:例: using System; class Test static void Main( ) Console.WriteLine( This

15、is a verbatim string literal that spans several lines. ); Console.WriteLine( Here is some tabbed output: 1 2 3 4 5 6 7 8 ); Console.WriteLine( Programmers say, I like C#); 運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:3.1.3 類型轉(zhuǎn)換類型轉(zhuǎn)換 數(shù)據(jù)類型在一定條件下是可以相互轉(zhuǎn)換的。數(shù)據(jù)類型在一定條件下是可以相互轉(zhuǎn)換的。 C#允許使用兩種轉(zhuǎn)換的方式:隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。允許使用兩種轉(zhuǎn)換的方式:隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。 1. 隱式轉(zhuǎn)換隱式轉(zhuǎn)換 隱

16、式轉(zhuǎn)換是系統(tǒng)默認(rèn)的、不需要加以聲明就可以進(jìn)行的隱式轉(zhuǎn)換是系統(tǒng)默認(rèn)的、不需要加以聲明就可以進(jìn)行的轉(zhuǎn)換。轉(zhuǎn)換。 隱式數(shù)據(jù)轉(zhuǎn)換的使用方法如下:隱式數(shù)據(jù)轉(zhuǎn)換的使用方法如下: int i=518; /a為整型數(shù)據(jù)為整型數(shù)據(jù) long b=i; /b為長(zhǎng)整型數(shù)據(jù)為長(zhǎng)整型數(shù)據(jù) float f=i; /f為單精度浮點(diǎn)型數(shù)據(jù)為單精度浮點(diǎn)型數(shù)據(jù) 2顯式轉(zhuǎn)換顯式轉(zhuǎn)換 顯式轉(zhuǎn)換又叫顯式轉(zhuǎn)換又叫強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換,顯式轉(zhuǎn)換要明確指定轉(zhuǎn)換類型。,顯式轉(zhuǎn)換要明確指定轉(zhuǎn)換類型。 顯式轉(zhuǎn)換格式:顯式轉(zhuǎn)換格式: (類型標(biāo)識(shí)符類型標(biāo)識(shí)符)表達(dá)式表達(dá)式意義為:意義為:將表達(dá)式的值的類型轉(zhuǎn)換為類型標(biāo)識(shí)符的類型。將表達(dá)式的值的類型

17、轉(zhuǎn)換為類型標(biāo)識(shí)符的類型。 比如:比如: (char)65 /把把int類型的類型的65轉(zhuǎn)換成轉(zhuǎn)換成char類型類型注意:注意:(1)顯式轉(zhuǎn)換可能會(huì)導(dǎo)致錯(cuò)誤。)顯式轉(zhuǎn)換可能會(huì)導(dǎo)致錯(cuò)誤。 (2)對(duì)于將)對(duì)于將float,double, decimal轉(zhuǎn)換為整數(shù),將通過(guò)舍轉(zhuǎn)換為整數(shù),將通過(guò)舍 入得到最接近的整型值,如果這個(gè)整型值超出目標(biāo)入得到最接近的整型值,如果這個(gè)整型值超出目標(biāo) 域,則出現(xiàn)轉(zhuǎn)換異常。域,則出現(xiàn)轉(zhuǎn)換異常。 比如:比如: (int)6.28m / 轉(zhuǎn)換的結(jié)果為轉(zhuǎn)換的結(jié)果為6 (int) 3e25f /將產(chǎn)生溢出錯(cuò)誤將產(chǎn)生溢出錯(cuò)誤3.1.4 裝箱和拆箱裝箱和拆箱 1裝箱轉(zhuǎn)換裝箱轉(zhuǎn)換 裝箱

18、轉(zhuǎn)換裝箱轉(zhuǎn)換是指將一個(gè)值類型的數(shù)據(jù)是指將一個(gè)值類型的數(shù)據(jù)隱式地隱式地轉(zhuǎn)換成一個(gè)對(duì)象類型轉(zhuǎn)換成一個(gè)對(duì)象類型(object)的數(shù)據(jù)。)的數(shù)據(jù)。 例如:下面的兩條語(yǔ)句就執(zhí)行了裝箱轉(zhuǎn)換:例如:下面的兩條語(yǔ)句就執(zhí)行了裝箱轉(zhuǎn)換: int i=518; object obj=i; 例:在程序中執(zhí)行裝箱轉(zhuǎn)換。例:在程序中執(zhí)行裝箱轉(zhuǎn)換。 using System; class BoxingDemo static void Main( ) Console.WriteLine(執(zhí)行裝箱轉(zhuǎn)換:執(zhí)行裝箱轉(zhuǎn)換:); int k=200; object obj=k; k=300; Console.WriteLine(obj

19、=0,obj); Console.WriteLine(k=0, k); 2拆箱轉(zhuǎn)換拆箱轉(zhuǎn)換 和裝箱相反,和裝箱相反,拆箱轉(zhuǎn)換拆箱轉(zhuǎn)換是指將一個(gè)對(duì)象類型的數(shù)是指將一個(gè)對(duì)象類型的數(shù)據(jù)據(jù)顯式地顯式地轉(zhuǎn)換成一個(gè)值類型數(shù)據(jù)。轉(zhuǎn)換成一個(gè)值類型數(shù)據(jù)。 例如:例如: object obj=228; int k=(int)obj; 例:在程序中使用拆箱轉(zhuǎn)換。例:在程序中使用拆箱轉(zhuǎn)換。 using System class UnboxingDemo static void Main( ) int k=228; object obj=k; /裝箱轉(zhuǎn)換裝箱轉(zhuǎn)換 int j=(int ) obj; /拆箱轉(zhuǎn)換拆箱轉(zhuǎn)換

20、Console.WriteLine(k=0tobj=1tj=2, k, obj, j); 該程序執(zhí)行后,輸出結(jié)果如下該程序執(zhí)行后,輸出結(jié)果如下: k=228 obj=228 j=228練習(xí)練習(xí):1( )是)是decimal類型數(shù)據(jù)類型數(shù)據(jù) A123L B1234 C1234F D1234M2已知大寫字母已知大寫字母A的的ASCII碼是碼是65,小寫字母,小寫字母a的的ASCII碼碼 是是97,則十六進(jìn)制字符常量,則十六進(jìn)制字符常量u0042表示(表示( ) A字符字符a B字符字符A C字符字符b D字符字符B 3.2.1 常量常量 在在C#中,常量在程序的運(yùn)行過(guò)程中其值是中,常量在程序的運(yùn)行

21、過(guò)程中其值是不能改變不能改變的,例如,數(shù)字的,例如,數(shù)字100就是一個(gè)常量,這樣的常量一般被稱就是一個(gè)常量,這樣的常量一般被稱作常數(shù)。作常數(shù)。 聲明常量的格式:聲明常量的格式: const 類型標(biāo)識(shí)符類型標(biāo)識(shí)符 常量名常量名 = 表達(dá)式;表達(dá)式; 例:例: const double PI=3.14159265; double r=5.2; double s=PI*r*r; Console.Write(“面積面積=0”,s); 3.2 常量與變量常量與變量常量特點(diǎn):常量特點(diǎn):l l 在程序中,常量只能被賦予初始值。在程序中,常量只能被賦予初始值。l l 定義常量時(shí),表達(dá)式中的運(yùn)算符對(duì)象只允許出現(xiàn)

22、常量和定義常量時(shí),表達(dá)式中的運(yùn)算符對(duì)象只允許出現(xiàn)常量和常數(shù),不能有變量存在。常數(shù),不能有變量存在。 例如:例如: int b=18; const int a=26; const int k=b+10; /錯(cuò)誤,表達(dá)式中不允許出現(xiàn)變量錯(cuò)誤,表達(dá)式中不允許出現(xiàn)變量 const int d=a+23; /正確,因?yàn)檎_,因?yàn)閍是常量是常量 a=56; /錯(cuò)誤,不能修改常量的值錯(cuò)誤,不能修改常量的值 3.2.2 變量變量 變量是程序運(yùn)行過(guò)程中用于存放數(shù)據(jù)的變量是程序運(yùn)行過(guò)程中用于存放數(shù)據(jù)的存儲(chǔ)單元存儲(chǔ)單元。 變量的值在程序的運(yùn)行過(guò)程中可以改變。變量的值在程序的運(yùn)行過(guò)程中可以改變。 1變量的定義變量的定

23、義 在定義變量時(shí),首先必須給每一個(gè)變量起名,稱為變量名,在定義變量時(shí),首先必須給每一個(gè)變量起名,稱為變量名,變量名代表變量名代表存儲(chǔ)地址存儲(chǔ)地址。 變量的類型決定了存儲(chǔ)在變量中的數(shù)值的類型。變量的類型決定了存儲(chǔ)在變量中的數(shù)值的類型。 變量定義格式:變量定義格式: 類型標(biāo)識(shí)符類型標(biāo)識(shí)符 變量名變量名1,變量名,變量名2,例:例:double fsum;string strName;char b;int x;注意:注意:C#規(guī)定,任何變量在使用前,必須先定義,規(guī)定,任何變量在使用前,必須先定義, 后使用。后使用。2變量的賦值變量的賦值 變量的賦值,就是將數(shù)據(jù)保存到變量所代表的存儲(chǔ)單元變量的賦值,就

24、是將數(shù)據(jù)保存到變量所代表的存儲(chǔ)單元中的過(guò)程。中的過(guò)程。 格式:格式: 變量名變量名=表達(dá)式;表達(dá)式; 意義:計(jì)算表達(dá)式的值,然后將這個(gè)值賦予變量。意義:計(jì)算表達(dá)式的值,然后將這個(gè)值賦予變量。例例: double nAverage; int nAgeSum; nAgeSum=210; /給給nAgeSum變量賦予數(shù)值變量賦予數(shù)值210 在程序中,可以給一個(gè)變量多次賦值。變量的當(dāng)值等在程序中,可以給一個(gè)變量多次賦值。變量的當(dāng)值等于于最近一次最近一次給變量所賦的值。給變量所賦的值。 如:如: nAgeSum=68; /這時(shí)這時(shí)nAgeSum等于等于68 nAgeSum=36+24; /這時(shí)這時(shí)nAg

25、eSum等于等于60 nAgeSum= nAgeSum+40; /這這時(shí)這這時(shí)nAgeSum等于等于100 在對(duì)變量進(jìn)行賦值時(shí),表達(dá)式的值的類型必須同變量在對(duì)變量進(jìn)行賦值時(shí),表達(dá)式的值的類型必須同變量的類型的類型相同相同。 string sName; int nScore; sName=Jack; /正確正確 sName=Tom; /正確正確 nScore=98; sName=5; /錯(cuò)誤錯(cuò)誤, 不能將整數(shù)賦予字符串對(duì)象不能將整數(shù)賦予字符串對(duì)象 nScore=Hello; /錯(cuò)誤錯(cuò)誤, 不能字符串賦予整型變量不能字符串賦予整型變量 在定義變量的同時(shí),可以對(duì)變量賦值,稱為變量在定義變量的同時(shí),可

26、以對(duì)變量賦值,稱為變量的初始化。的初始化。 對(duì)變量進(jìn)行初始化的格式如下:對(duì)變量進(jìn)行初始化的格式如下: 類型標(biāo)識(shí)符類型標(biāo)識(shí)符 變量名變量名=表達(dá)式;表達(dá)式; 例:例: string str=“This is a book”; 3變量的初始化變量的初始化練習(xí):練習(xí): 判斷題:判斷題: 1. C#規(guī)定所有變量必須先聲明后使用。(規(guī)定所有變量必須先聲明后使用。( ) 2雙精度浮點(diǎn)數(shù)類型雙精度浮點(diǎn)數(shù)類型double由由8個(gè)字節(jié)組成。個(gè)字節(jié)組成。( ) 3. 執(zhí)行執(zhí)行const int a=10; a=a+1; 這兩條語(yǔ)句后這兩條語(yǔ)句后, a的值為的值為11。 ( ) 填空題:填空題: 1使用變量使用變量

27、a存放數(shù)據(jù)存放數(shù)據(jù)-389,則將變量聲明為(,則將變量聲明為( )類型)類型 最合適。最合適。3.3 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式 3.3.1 運(yùn)算符運(yùn)算符 運(yùn)算符是表示各種不同運(yùn)算的符號(hào)。運(yùn)算符是表示各種不同運(yùn)算的符號(hào)。 1算術(shù)運(yùn)算符算術(shù)運(yùn)算符 算術(shù)運(yùn)算符用于對(duì)操作數(shù)進(jìn)行算術(shù)運(yùn)算。算術(shù)運(yùn)算符用于對(duì)操作數(shù)進(jìn)行算術(shù)運(yùn)算。C#的算術(shù)運(yùn)算符的算術(shù)運(yùn)算符同數(shù)學(xué)中的算術(shù)運(yùn)算符是很相似的。同數(shù)學(xué)中的算術(shù)運(yùn)算符是很相似的。表表 C#算術(shù)運(yùn)算符算術(shù)運(yùn)算符 例:例: using System; class ModDemo static void Main( ) int iresult,irem; double

28、dreult,drem; iresult=10/3; irem=10%3; dresult=10.0/3.0; drem=10.0%3.0; Console.WriteLine(10/3=0t 10%3=1, iresult, irem); Console.WriteLine(10.0/3.0=0t10.0%3.0=1,dresult, drem); 程序的輸出如下所示:程序的輸出如下所示:10/3=3 10%3=110.0/3.0=3.33333333333333 10.0%3.0=1 特殊的算術(shù)運(yùn)算符:特殊的算術(shù)運(yùn)算符:+(自增運(yùn)算符自增運(yùn)算符) -(自減速運(yùn)算符自減速運(yùn)算符) 作用:作用

29、:使變量的值自動(dòng)增加使變量的值自動(dòng)增加1或者減少或者減少1。 例如,例如,x=x+1; 可以被寫成可以被寫成 +x; /前綴格式前綴格式 或者或者 x+; /后綴格式后綴格式 例:例: x=8; y=+x; 在這種情況下,在這種情況下,x和和y被賦值為被賦值為9。 但是,如果代碼如下所寫:但是,如果代碼如下所寫: x=8; y=x+; 那么那么y被賦值為被賦值為8, x被賦值為被賦值為9 。 當(dāng)一個(gè)自增或自減運(yùn)算符在它的操作數(shù)前面時(shí),當(dāng)一個(gè)自增或自減運(yùn)算符在它的操作數(shù)前面時(shí),C#將在取將在取得操作數(shù)的值前執(zhí)行自增或自減操作。得操作數(shù)的值前執(zhí)行自增或自減操作。 如果運(yùn)算符在操作數(shù)的后面,如果運(yùn)算

30、符在操作數(shù)的后面,C#將先取得操作數(shù)的值,然將先取得操作數(shù)的值,然后進(jìn)行自增或自減運(yùn)算。后進(jìn)行自增或自減運(yùn)算。 例:例: using System; class Test static void Main( ) int x=5; int y=x-; Console.WriteLine(y=0, y); y=-x; Console.WriteLine(y=0, y); 結(jié)果:結(jié)果: y=5 y=3 注意:注意:+、 -只能用變量,而不能用于常量或表達(dá)式,例如只能用變量,而不能用于常量或表達(dá)式,例如5+或或-(x+y)都是錯(cuò)誤的。都是錯(cuò)誤的。例:例: using System; class cou

31、nt static void Main() int Val1=2; int Val2=3; Console.WriteLine(“Val1*Val2=0”, Val1*Val2); Console.WriteLine(“Val1/Val2=0”, Val1/Val2); Console.WriteLine(“Val1%Val2=0”, Val1%Val2); Console.WriteLine( +Val1); Console.WriteLine(-Val2); Console.WriteLine(Val1+); Console.WriteLine(Val2-); 結(jié)果:結(jié)果:2賦值運(yùn)算符賦值

32、運(yùn)算符 賦值運(yùn)算符用于將一個(gè)數(shù)據(jù)賦予一個(gè)變量,賦值操作符的賦值運(yùn)算符用于將一個(gè)數(shù)據(jù)賦予一個(gè)變量,賦值操作符的左操作數(shù)必須是一個(gè)變量,賦值結(jié)果是將一個(gè)新的數(shù)值存放在左操作數(shù)必須是一個(gè)變量,賦值結(jié)果是將一個(gè)新的數(shù)值存放在變量所指示的內(nèi)存空間中。變量所指示的內(nèi)存空間中。 例如例如: int x=8; x=x+x; x=16-x;表表 C#的賦值運(yùn)算符的賦值運(yùn)算符 可以把表達(dá)式的值通過(guò)復(fù)合賦值運(yùn)算符賦予變量,這可以把表達(dá)式的值通過(guò)復(fù)合賦值運(yùn)算符賦予變量,這時(shí)復(fù)合賦值運(yùn)算時(shí)復(fù)合賦值運(yùn)算右邊的表達(dá)式右邊的表達(dá)式是作為一個(gè)是作為一個(gè)整體整體參加運(yùn)算的。參加運(yùn)算的。例例: int a=8,b=3; a%=b*

33、2-5; /*相當(dāng)于相當(dāng)于a%=(b*2-5),它與,它與 a=a%(b*2-5)是等價(jià)的。是等價(jià)的。*/ 對(duì)變量可以進(jìn)行連續(xù)賦值。對(duì)變量可以進(jìn)行連續(xù)賦值。 例例: int z=3; x=y=z; /等價(jià)于等價(jià)于x=(y=z)。3. 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 關(guān)系運(yùn)算符用于比較兩個(gè)值的大小,關(guān)系運(yùn)算的關(guān)系運(yùn)算符用于比較兩個(gè)值的大小,關(guān)系運(yùn)算的結(jié)果結(jié)果不是不是true就是就是false。 例:例: bool a=a5-2 / a的值為的值為false表表 C#的關(guān)系運(yùn)算符的關(guān)系運(yùn)算符例:例:using System;class RelaOpr static void Main( ) int a=50

34、; int x=30; int y=60; int b; b=x+y; bool j; j=a=b-40; Console.WriteLine(“a=b is 0”, j); 該程序運(yùn)行后,輸出結(jié)果為:該程序運(yùn)行后,輸出結(jié)果為: a=b is True 4邏輯運(yùn)算符邏輯運(yùn)算符 邏輯運(yùn)算符用于表示兩個(gè)布爾值之間的邏輯關(guān)系,邏輯邏輯運(yùn)算符用于表示兩個(gè)布爾值之間的邏輯關(guān)系,邏輯運(yùn)算運(yùn)算結(jié)果是布爾類型結(jié)果是布爾類型。 邏輯非(邏輯非(!):):運(yùn)算的結(jié)果是原先的運(yùn)算結(jié)果的運(yùn)算的結(jié)果是原先的運(yùn)算結(jié)果的逆逆。 邏輯與(邏輯與(&):):只有兩個(gè)運(yùn)算對(duì)象只有兩個(gè)運(yùn)算對(duì)象都為都為true,結(jié)果結(jié)果才為才為tr

35、ue;只要其中有一個(gè)是;只要其中有一個(gè)是false,結(jié)果就為,結(jié)果就為false。 邏輯或(邏輯或(| ):):只要兩個(gè)運(yùn)算對(duì)象中有只要兩個(gè)運(yùn)算對(duì)象中有一個(gè)是一個(gè)是true,結(jié)結(jié)果果就為就為true,只有兩個(gè)條件均為,只有兩個(gè)條件均為false,結(jié)果才為,結(jié)果才為false。 表表 C#的邏輯運(yùn)算符的邏輯運(yùn)算符 當(dāng)需要多個(gè)判定條件時(shí),可以很方便地使用邏輯運(yùn)算當(dāng)需要多個(gè)判定條件時(shí),可以很方便地使用邏輯運(yùn)算符將關(guān)系表達(dá)式連接起來(lái)。符將關(guān)系表達(dá)式連接起來(lái)。 例例: xy&x0 如果表達(dá)式中同時(shí)存在著多個(gè)邏輯運(yùn)算符,如果表達(dá)式中同時(shí)存在著多個(gè)邏輯運(yùn)算符,邏輯非的邏輯非的優(yōu)先級(jí)最高,邏輯與的優(yōu)先級(jí)高于邏

36、輯或。優(yōu)先級(jí)最高,邏輯與的優(yōu)先級(jí)高于邏輯或。 例例: 32|!(5-36)&ab5. 位運(yùn)算符位運(yùn)算符 (1) “”運(yùn)算符運(yùn)算符 把二進(jìn)制數(shù)的把二進(jìn)制數(shù)的0轉(zhuǎn)換為轉(zhuǎn)換為1,1轉(zhuǎn)換為轉(zhuǎn)換為0。 例:例:6的二進(jìn)制表示:的二進(jìn)制表示:00000110 6的結(jié)果:的結(jié)果: 11111001 (2) “&”運(yùn)算符運(yùn)算符 0&0=0 0&1=0 1&0=0 1&1=1 例:例:7的二進(jìn)制表示:的二進(jìn)制表示: 00000111 11的二進(jìn)制表示:的二進(jìn)制表示:00001011 “&”運(yùn)算的結(jié)果是:運(yùn)算的結(jié)果是: 00000011 即:即:7&11=3 (3) “|”運(yùn)算符運(yùn)算符 0| 0=0 0|1=1

37、1|0=1 1|1=1 例:例:7的二進(jìn)制表示:的二進(jìn)制表示: 00000111 11的二進(jìn)制表示:的二進(jìn)制表示:00001011 “|”運(yùn)算的結(jié)果是:運(yùn)算的結(jié)果是: 00001111 即:即:7&11=15 (4) “”運(yùn)算符運(yùn)算符 00=0 01=1 10=1 11=0 例:例:7的二進(jìn)制表示:的二進(jìn)制表示: 00000111 11的二進(jìn)制表示:的二進(jìn)制表示:00001011 “”運(yùn)算的結(jié)果是:運(yùn)算的結(jié)果是: 00001100 即:即:711=12 (5) “”運(yùn)算符運(yùn)算符 二進(jìn)制位全部二進(jìn)制位全部按位左移按位左移,高位高位被被丟棄丟棄,低位低位順序順序補(bǔ)補(bǔ)0。 例:例:7的二進(jìn)制表示:的

38、二進(jìn)制表示: 00000111 7”運(yùn)算符運(yùn)算符 二進(jìn)制位全部二進(jìn)制位全部按位右移按位右移。 例:例:7的二進(jìn)制表示:的二進(jìn)制表示: 00000111 71結(jié)果是結(jié)果是00000011(十進(jìn)制是(十進(jìn)制是3) 6. 條件運(yùn)算符條件運(yùn)算符 格式:格式: 操作數(shù)操作數(shù)1?操作數(shù)操作數(shù)2:操作數(shù)操作數(shù)3 含義:進(jìn)行條件運(yùn)算時(shí),首先含義:進(jìn)行條件運(yùn)算時(shí),首先判斷問(wèn)號(hào)前面的布爾值判斷問(wèn)號(hào)前面的布爾值是是true還是還是false,如果是,如果是true,則值等于,則值等于操作數(shù)操作數(shù)2的值的值;如果為如果為false,則值等于,則值等于操作數(shù)操作數(shù)3的值的值。 例如:條件表達(dá)式例如:條件表達(dá)式“68?1

39、5+a:39”,由于,由于68的值為的值為false,所以整個(gè)表達(dá)式的,所以整個(gè)表達(dá)式的值是值是39。 7. 其他運(yùn)算符其他運(yùn)算符 (1) 字符串連接符(字符串連接符(+) 就是將兩個(gè)字符就是將兩個(gè)字符串連接在一起串連接在一起,形成新的字符串。,形成新的字符串。 比如:比如: “abc”+“efg” /結(jié)果是結(jié)果是abcefg “36812”+“3.14” / 結(jié)果是結(jié)果是368123.14 (2) is運(yùn)算符運(yùn)算符 is運(yùn)算符用于檢查表達(dá)式是否指定的類型,如果是,結(jié)運(yùn)算符用于檢查表達(dá)式是否指定的類型,如果是,結(jié)果為果為true,否則結(jié)果為,否則結(jié)果為false。例如:例如: int k=2;

40、 bool isTest=k is int; /isTest=true (3) sizeof運(yùn)算符運(yùn)算符 sizeof運(yùn)算符用于獲得值類型數(shù)據(jù)在運(yùn)算符用于獲得值類型數(shù)據(jù)在內(nèi)存占用的字節(jié)數(shù)內(nèi)存占用的字節(jié)數(shù)。例如:例如: int a=sizeof(double); /a=8 3.3.2 表達(dá)式表達(dá)式 表達(dá)式是運(yùn)算符、常量和變量等組成的符號(hào)序列。表達(dá)式是運(yùn)算符、常量和變量等組成的符號(hào)序列。 1算術(shù)表達(dá)式算術(shù)表達(dá)式 算術(shù)表達(dá)式是用算術(shù)運(yùn)算符將運(yùn)算對(duì)象連接起來(lái)的符合算術(shù)表達(dá)式是用算術(shù)運(yùn)算符將運(yùn)算對(duì)象連接起來(lái)的符合語(yǔ)法規(guī)則的式子。語(yǔ)法規(guī)則的式子。 自增運(yùn)算符和自減運(yùn)算符的優(yōu)先級(jí)別高于其他的算術(shù)運(yùn)自增運(yùn)算符

41、和自減運(yùn)算符的優(yōu)先級(jí)別高于其他的算術(shù)運(yùn)算符。算符。 例如表達(dá)式例如表達(dá)式8+x+,應(yīng)看作,應(yīng)看作8+(x+)。如果。如果x的原值是的原值是6,則表達(dá)式則表達(dá)式8+x+的值是的值是14,運(yùn)算結(jié)束后,運(yùn)算結(jié)束后x的值是的值是7。 2賦值表達(dá)式賦值表達(dá)式 由賦值運(yùn)算符將變量和表達(dá)式連接起來(lái)的式子稱為賦由賦值運(yùn)算符將變量和表達(dá)式連接起來(lái)的式子稱為賦值表達(dá)式。值表達(dá)式。 例如:例如: y=x=8*8+3 這個(gè)賦值表達(dá)式的值是這個(gè)賦值表達(dá)式的值是67。由于賦值運(yùn)算符的結(jié)合性。由于賦值運(yùn)算符的結(jié)合性是自右至左的,所以是自右至左的,所以y=x=8*8+3和和 y=(x=8*8+3)是等價(jià)的。是等價(jià)的。 3關(guān)系

42、表達(dá)式關(guān)系表達(dá)式 用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子稱為關(guān)系表用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的值是布爾類型,即真達(dá)式。關(guān)系表達(dá)式的值是布爾類型,即真(true)或假或假(false)。 例如:例如: x=8; y=6; z=xy+3; /結(jié)果為結(jié)果為false a=xy&z; /結(jié)果為結(jié)果為false 4邏輯表達(dá)式邏輯表達(dá)式 用邏輯運(yùn)算符將關(guān)系表達(dá)式或者邏輯值連接起來(lái)的式用邏輯運(yùn)算符將關(guān)系表達(dá)式或者邏輯值連接起來(lái)的式子稱為邏輯表達(dá)式。邏輯表達(dá)式的值只能取子稱為邏輯表達(dá)式。邏輯表達(dá)式的值只能取true或或false。 三個(gè)邏輯運(yùn)算符的運(yùn)算順序?yàn)槿齻€(gè)邏輯運(yùn)算符的運(yùn)算順序?yàn)椤斑壿嫹沁壿嫹恰弊罡?,其次最高,其次是是“邏輯與邏輯

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論