第3章C語法基礎(chǔ)ppt課件_第1頁
第3章C語法基礎(chǔ)ppt課件_第2頁
第3章C語法基礎(chǔ)ppt課件_第3頁
第3章C語法基礎(chǔ)ppt課件_第4頁
第3章C語法基礎(chǔ)ppt課件_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第3章 C#語法根底3.1 數(shù)據(jù)類型數(shù)據(jù)類型(1)值類型值類型: 整數(shù)、字符、實(shí)數(shù)、布爾數(shù)、構(gòu)整數(shù)、字符、實(shí)數(shù)、布爾數(shù)、構(gòu)造、枚舉造、枚舉(2)援用類型援用類型: class類、類、interface接接口、數(shù)組、口、數(shù)組、delegate委托、委托、object和和string。object是是C#中一切類型的根類。中一切類型的根類。string直接直接承繼承繼object類的密封類型類的密封類型值類型就是一個(gè)包含實(shí)踐數(shù)據(jù)的量。值類型就是一個(gè)包含實(shí)踐數(shù)據(jù)的量。C#以堆棧方式分配存儲(chǔ)區(qū)域給該變量,對(duì)其讀以堆棧方式分配存儲(chǔ)區(qū)域給該變量,對(duì)其讀/寫直接在這塊區(qū)域進(jìn)展。寫直接在這塊區(qū)域進(jìn)展。例如:例

2、如: int iNum=10; / 分配一個(gè)分配一個(gè)32位內(nèi)存區(qū)域給變量位內(nèi)存區(qū)域給變量iNum, / 并將并將10放入該內(nèi)存區(qū)域放入該內(nèi)存區(qū)域 iNum=iNum+10; / 從變量從變量iNum中取出值,加上中取出值,加上10, /再將計(jì)算結(jié)果賦給再將計(jì)算結(jié)果賦給iNum 援用類型不存儲(chǔ)實(shí)踐數(shù)據(jù),而是存儲(chǔ)其援用 首先在堆棧上創(chuàng)建一個(gè)援用變量, 然后在堆上創(chuàng)建對(duì)象本身, 再把這個(gè)內(nèi)存的首地址賦給援用變量。例如:例如: string s1, s2; s1=ABCD; s2 = s1; s1、s2是指向字符串的援用變量,是指向字符串的援用變量,s1的值是字符串的值是字符串ABCD存放在內(nèi)存的地址

3、存放在內(nèi)存的地址 語句語句s2 = s1使得使得s2、s1都援用都援用ABCD例例:援用類型援用類型思索:輸出思索:輸出s2和和s1,有何結(jié)果?,有何結(jié)果?3.1.1 簡(jiǎn)單值類型簡(jiǎn)單值類型1. 整數(shù)類型整數(shù)類型有符號(hào)整數(shù)包括有符號(hào)整數(shù)包括sbyte符號(hào)字節(jié)符號(hào)字節(jié)型、型、short短整型、短整型、int整整型、型、long長(zhǎng)整型。長(zhǎng)整型。無符號(hào)整數(shù)默以為正數(shù)無符號(hào)整數(shù)默以為正數(shù),包括包括byte字字節(jié)型、節(jié)型、ushort無符號(hào)短整型、無符號(hào)短整型、uint無符號(hào)整型、無符號(hào)整型、ulong無符號(hào)無符號(hào)長(zhǎng)整型。長(zhǎng)整型。 2. char字符型字符型范圍是范圍是065535之間的之間的Unicod

4、e字符,占字符,占2個(gè)字節(jié)個(gè)字節(jié) char a1=s; char a2=; / 表示單斜杠string s1= “perpson / string是字符類,用雙引號(hào)char a3=; / 表示單引號(hào)轉(zhuǎn)轉(zhuǎn) 義義 字字 符符含含 義義Unicode碼碼轉(zhuǎn)轉(zhuǎn) 義義 字字 符符含含 義義Unicode碼碼單引號(hào)單引號(hào)u0027 b退格符退格符u0008雙引號(hào)雙引號(hào)u0022 f走紙換走紙換頁符頁符u000C反斜線反斜線字符字符u005C n換行符換行符u000A0空字符空字符u0000 r回車符回車符u000Da警鈴符警鈴符u0007 t水平制水平制表符表符u0009v垂直制垂直制表符表符u000B本

5、義符本義符3. 實(shí)數(shù)類型實(shí)數(shù)類型包括包括float單精度浮點(diǎn)型、單精度浮點(diǎn)型、double雙精度雙精度浮點(diǎn)型、浮點(diǎn)型、decimal十進(jìn)制型。十進(jìn)制型。double x = 1.2; / 亦可加上 d 或 Dfloat y= -0.5f / 需加上 f 或 Fdecimal z = 3.2m / 需加上 m 或 M4 布爾類型布爾類型bool布爾型:表示布爾邏輯量。數(shù)據(jù)范布爾型:表示布爾邏輯量。數(shù)據(jù)范圍是圍是“true和和“false。占一個(gè)字節(jié)。占一個(gè)字節(jié)。bool b1= true;bool b2=false;C#關(guān)鍵字關(guān)鍵字.NET CTS類型類型名名說說 明明范圍和精度范圍和精度boo

6、lSystem.Boolean布爾型布爾型true, falsesbyteSystem.SByte8位有符號(hào)整數(shù)類位有符號(hào)整數(shù)類型型 128127byteSystem.Byte8位無符號(hào)整數(shù)類位無符號(hào)整數(shù)類型型0255shortSystem.Int1616位有符號(hào)整數(shù)位有符號(hào)整數(shù)類型類型 3276832767ushortSystem.UInt1616位無符號(hào)整數(shù)位無符號(hào)整數(shù)類型類型065535intSystem.Int3232位有符號(hào)整數(shù)位有符號(hào)整數(shù)類型類型 21474836482147483647C#中的數(shù)據(jù)類型uintSystem.Uint3232位無符號(hào)整數(shù)位無符號(hào)整數(shù)類型類型04294

7、967295longSystem.Int6464位有符號(hào)整數(shù)位有符號(hào)整數(shù)類型類型 92233720368547758089223372036854775807ulongSystem.UInt6464位無符號(hào)整數(shù)位無符號(hào)整數(shù)類型類型018446744073709551615charSystem.Char16位字符類型位字符類型所有的所有的Unicode編碼編碼字符字符floatSystem.Single32位單精度浮點(diǎn)類位單精度浮點(diǎn)類型型(大約(大約7個(gè)有效十進(jìn)個(gè)有效十進(jìn)制數(shù)位)制數(shù)位)doubleSystem.Double64位雙精度浮點(diǎn)類位雙精度浮點(diǎn)類型型(大約(大約1516個(gè)有效個(gè)有效十進(jìn)

8、制數(shù)位)十進(jìn)制數(shù)位)decimalSystem.Decimal128位高精度十進(jìn)位高精度十進(jìn)制數(shù)類型制數(shù)類型(大約(大約2829個(gè)有效個(gè)有效十進(jìn)制數(shù)位)十進(jìn)制數(shù)位)3.1.2 復(fù)合值類型復(fù)合值類型1 構(gòu)造構(gòu)造包含數(shù)據(jù)、構(gòu)造函數(shù)、方法、屬性、事件等成員包含數(shù)據(jù)、構(gòu)造函數(shù)、方法、屬性、事件等成員struct MyStruct / 定義字段定義字段x,ypublic int x;public int y; public MyStruct(int i, int j) / 定義構(gòu)造函數(shù)定義構(gòu)造函數(shù) x = i;y = j;例:值類型的構(gòu)造例:值類型的構(gòu)造2 枚舉枚舉對(duì)變量的取值范圍作特殊限制對(duì)變量的取值

9、范圍作特殊限制enum Weekday Mon, Tues, Wedn, Thur, Fri, Sat, SunWeekday day1 = Weekday.Mon;思索:枚舉值可以相減,卻不能相加,何故?思索:枚舉值可以相減,卻不能相加,何故?3.1.3 類類將構(gòu)造的將構(gòu)造的struct 改為改為class便得到類,但類便得到類,但類是援用類型是援用類型例:定義類并創(chuàng)建實(shí)例例:定義類并創(chuàng)建實(shí)例構(gòu)造與類的區(qū)別構(gòu)造與類的區(qū)別結(jié)結(jié) 構(gòu)構(gòu)類類值類型值類型引用類型引用類型可以不用可以不用new 實(shí)例化實(shí)例化必須必須沒有默認(rèn)的構(gòu)造函數(shù),沒有默認(rèn)的構(gòu)造函數(shù),但可以添加構(gòu)造函數(shù)有有沒有析構(gòu)函數(shù)沒有析構(gòu)函數(shù)有

10、有沒有 abstract、protected和 sealed修飾符可以有可以有構(gòu)造用于點(diǎn)、矩形和顏色等輕量對(duì)象值類型在堆棧上分配,援用類型在堆上分配。前者快于后者堆用完以后由.NET的渣滓搜集器自動(dòng)回收,拖累性能3.1.4 數(shù)組數(shù)組數(shù)組有三種:一維數(shù)組、多維數(shù)組和不規(guī)那么數(shù)組數(shù)組有三種:一維數(shù)組、多維數(shù)組和不規(guī)那么數(shù)組數(shù)組也是援用類型數(shù)組也是援用類型1一維數(shù)組一維數(shù)組一維數(shù)組的聲明一維數(shù)組的聲明:可在實(shí)例化的同時(shí)初始化int xs = new int 3 10, 20, 30 ;int xs = 10, 20, 30 ; 運(yùn)用new操作符創(chuàng)建數(shù)組實(shí)例:num = new int3;type a

11、rrayName ; / type是數(shù)據(jù)類型。例: int num;2多維數(shù)組多維數(shù)組多維數(shù)組的聲明type , , , arrayName ; n個(gè)逗號(hào)表示n+1維數(shù)組。也可在實(shí)例化時(shí)初始化int , x = new int2,3 1,2,3, 3,5,8 ;int , y = new int, 10,50, 25,75, 50,150;int , z = 1,2,3,5,8,13 , 1,2,3,5,8,13 ;或者int , nums = new 3, 2;例如: int , nums; / 二維數(shù)組nums = new int 3,23不規(guī)那么數(shù)組不規(guī)那么數(shù)組不規(guī)那么數(shù)組是數(shù)組的數(shù)組,

12、每個(gè)數(shù)組的長(zhǎng)度可以不同不規(guī)那么數(shù)組的聲明type arrayName ;例如: int jagged ; / 二維不規(guī)那么數(shù)組創(chuàng)建數(shù)組實(shí)例不規(guī)那么數(shù)組初始化不規(guī)那么數(shù)組初始化每一個(gè)數(shù)組需求單獨(dú)運(yùn)用每一個(gè)數(shù)組需求單獨(dú)運(yùn)用new運(yùn)算符生成。運(yùn)算符生成。例如:例如: char st1 = new char 3 ; / st1由三個(gè)數(shù)由三個(gè)數(shù)組組成組組成st10 = new char S, e, p, t, e, m, b, e, r st11 = new char O, c, t, o, b, e, rst12 = new char N, o, v, e, m, b, e, r ;數(shù)組元素的訪問數(shù)組

13、元素的訪問1一維數(shù)組的援用一維數(shù)組的援用數(shù)組名數(shù)組名下標(biāo)下標(biāo)2多維數(shù)組的援用多維數(shù)組的援用數(shù)組名數(shù)組名下標(biāo)下標(biāo)1, 下標(biāo)下標(biāo)2, ,下標(biāo),下標(biāo)n3不規(guī)那么數(shù)組的援用不規(guī)那么數(shù)組的援用數(shù)組名數(shù)組名下標(biāo)下標(biāo)1下標(biāo)下標(biāo)2下標(biāo)下標(biāo)n【例】【例】 打印楊輝三角形打印楊輝三角形 3.1.5 類型轉(zhuǎn)換類型轉(zhuǎn)換分隱式與顯式分隱式與顯式1. 隱式轉(zhuǎn)換隱式轉(zhuǎn)換數(shù)值范圍小的類型向大的數(shù)值范圍小的類型向大的無符號(hào)整數(shù)轉(zhuǎn)為有符號(hào)的無符號(hào)整數(shù)轉(zhuǎn)為有符號(hào)的int b=7;char a=b; / 出錯(cuò)出錯(cuò)char letter=Aint num = 32+letter; / 合法合法int x=123456;long y=x

14、; / 合法合法 2. 顯式轉(zhuǎn)換也稱強(qiáng)迫轉(zhuǎn)換,用括弧明確指示轉(zhuǎn)換類型。格式: (數(shù)據(jù)類型稱號(hào))數(shù)據(jù)顯式轉(zhuǎn)換能夠損失數(shù)據(jù):decimal d=234.55M; int x=(int)d;例如:int x=600; short z=(short)x;派生類可隱式轉(zhuǎn)換為基類,反之需顯式class Student class Graduate : Student Graduate g1 = new Graduate();Student s1 = g1;Graduate g2 = (Graduate)s1; 3. 運(yùn)用方法進(jìn)展數(shù)據(jù)類型的轉(zhuǎn)換運(yùn)用方法進(jìn)展數(shù)據(jù)類型的轉(zhuǎn)換(2) ToString方法將其他數(shù)據(jù)

15、類型轉(zhuǎn)換為字符串。格式為: 變量稱號(hào).ToString( )例如:int x=123; string s=x.ToString( ); (1) Parse方法將特定格式的字符串轉(zhuǎn)換為數(shù)值。格式為: 數(shù)值類型稱號(hào).Parse(字符串型表達(dá)式)例如:int x=int.Parse(123); 演示:文本框字轉(zhuǎn)數(shù)、數(shù)轉(zhuǎn)字(3) 運(yùn)用Convert轉(zhuǎn)換 System.Convert類中有一套靜態(tài)方法實(shí)現(xiàn)類型的轉(zhuǎn)換方方 法法實(shí)現(xiàn)的轉(zhuǎn)實(shí)現(xiàn)的轉(zhuǎn)換類型換類型方方 法法實(shí)現(xiàn)的轉(zhuǎn)換類型實(shí)現(xiàn)的轉(zhuǎn)換類型Convert.ToBoolean()boolConvert.ToInt32()intConvert.ToByte(

16、)byteConvert.ToInt64()longConvert.ToChar()charConvert.ToSByte()sbyteConvert.ToString()stringConvert.ToSingle()floatConvert.ToDecimal()decimalConvert.ToUInt16()ushortConvert.ToDouble()doubleConvert.ToUInt32()uintConvert.ToInt16()shortConvert.ToUInt64()ulong例如:例如:string str = 32767;System.Convert.ToIn

17、t16(str);可以進(jìn)展正常的類型轉(zhuǎn)換。可以進(jìn)展正常的類型轉(zhuǎn)換?;蚧騭tring str = ;System.Convert.ToInt16(str); /無意義無意義 產(chǎn)生異常產(chǎn)生異常無意義的轉(zhuǎn)換將引發(fā)異常,將不執(zhí)行任何轉(zhuǎn)換string str = 32768;System.Convert.ToInt16(str); /超越范圍4.裝箱與拆箱裝箱與拆箱 “裝箱將其他類型包裝成裝箱將其他類型包裝成object援用類型援用類型 “拆箱操作與拆箱操作與“裝箱相反,它是將一個(gè)裝箱相反,它是將一個(gè)object類型轉(zhuǎn)換成其他類型。類型轉(zhuǎn)換成其他類型。值類型轉(zhuǎn)換為援用類型無需顯式轉(zhuǎn)換;反之需求例:裝箱和

18、拆箱例:裝箱和拆箱int x=3;object y=x; /裝箱 int z=(int)y; /拆箱演示:菜單項(xiàng)之拆箱操作3.2 操作符和表達(dá)式操作符和表達(dá)式3.2.1 算術(shù)操作符算術(shù)操作符-取負(fù)、取負(fù)、+取正、取正、+加、加、-減、減、*乘、乘、/除、除、%求求余。余。int x1 = 10 / 3 ; / x1 = 3int x2 = 10 % 3 ; / x2 = 1double y1 = 5.4 / 1.5 ; / y1 = 3.6double y2 = 5.4 %1.5 ; / y1 = 自增和自減操作符自增和自減操作符int x= 100;Console.Writ

19、eLine(x+); / 先輸出先輸出100,后計(jì)算,后計(jì)算x=x+1Console.WriteLine(+x); / 先計(jì)算先計(jì)算x=x+1,后輸出,后輸出102int y = 50;Console.WriteLine(-y); /先計(jì)算先計(jì)算y=y-1 ,后輸出,后輸出49Console.WriteLine(y+); /先輸出先輸出49,后計(jì)算后計(jì)算y=y-13.2.3 位操作符位操作符取反取反 左移左移 與與 &或或 |異或異或 3.2.4 賦值操作符賦值操作符簡(jiǎn)單賦值簡(jiǎn)單賦值=復(fù)合賦值復(fù)合賦值+= -= *= /= %= = &= |= =賦值操作符從右向左計(jì)算賦值操作

20、符從右向左計(jì)算例:byte x = 20;x = 2;byte y = x += 5;y += x += 2;3.2.5 關(guān)系操作符關(guān)系操作符比較操作符比較操作符= != = 判別操作符判別操作符is例:int x = 15;int y = 15 /2 * 2;bool b1 = (x = y);bool b2 = (x = y);int x = 5;Console.WriteLine( o is int );3.2.6 邏輯操作符邏輯操作符邏輯與邏輯與&邏輯或邏輯或|邏輯非邏輯非!例:int x = 15;int y = 15 /2 * 2;bool b1 = (x y) &

21、 (y 10);bool b2 = (x y) | (y y) ? x : y;3.2.8 操作符的優(yōu)先級(jí)與結(jié)合性操作符的優(yōu)先級(jí)與結(jié)合性 1. 優(yōu)先級(jí)優(yōu)先級(jí) 一元運(yùn)算符一元運(yùn)算符 二元和三元運(yùn)算符。二元和三元運(yùn)算符。 算術(shù)算術(shù) 關(guān)系關(guān)系 邏輯邏輯 條件條件 賦值賦值 。 乘、除、求余乘、除、求余 加、減;加、減; 小于、大于、小于等于、大于等于小于、大于、小于等于、大于等于 相等與相等與不等不等 非非 與與 或。或。 2. 結(jié)合性結(jié)合性賦值操作符與條件運(yùn)算符是由右向左結(jié)合的,賦值操作符與條件運(yùn)算符是由右向左結(jié)合的,賦值操作符以外的二元運(yùn)算符是由左向右結(jié)合的。賦值操作符以外的二元運(yùn)算符是由左向右

22、結(jié)合的。例例x+y+z是按是按(x+y)+z的順序運(yùn)算的順序運(yùn)算而而x=y=z是按是按x=(y=z)的順序運(yùn)算的順序運(yùn)算操作符的優(yōu)先級(jí)與結(jié)合性操作符的優(yōu)先級(jí)與結(jié)合性類類 別別運(yùn)運(yùn) 算算 符符結(jié)結(jié) 合合 性性初等項(xiàng)初等項(xiàng). ( ) new typeof checked unchecked 從左到右從左到右一元后綴一元后綴+ 從右到左從右到左一元前綴一元前綴+ + ! 從右到左從右到左乘法乘法* / % 從左到右從左到右加法加法+ 從左到右從左到右移位移位從左到右從左到右關(guān)系和類型關(guān)系和類型檢測(cè)檢測(cè) = is as 從左到右從左到右相等相等= !=從左到右從左到右與與&從左到右從左到右異或

23、異或從左到右從左到右或或|從左到右從左到右邏輯與邏輯與&從左到右從左到右邏輯或邏輯或|從左到右從左到右條件條件? :從右到左從右到左賦值賦值= *= /= %= += = = &= = |=從右到左從右到左例例: 知知int a = 3, b = 5, c = -1, d = 7;求:求:(c + d) / (a - b) % 2 0) | d 0計(jì)算步驟計(jì)算步驟:1, (c + d) / (a - b) % 2 0) | d 02, 6 / (-2) % 2 0 & True | d 03, -3 % 2 0 & True | d 04, -1 0 &

24、 True | 7= 60) Console.Write(及格及格);Console.Write(及格及格);x=60終了終了開場(chǎng)開場(chǎng)if(x = 60) Console.Write(及格及格);else Console.Write(不及格不及格);Console.Write(及格及格);x=60終了終了開場(chǎng)開場(chǎng)Console.Write(不及格不及格);char grade;if(x = 80) grade = 優(yōu)優(yōu);else if (x=60) grade = 良良else grade = 差差;grade = 優(yōu)優(yōu)x=80終了終了開場(chǎng)開場(chǎng)grade = 良良grade = 差差x=60int i = x / 20; char grade;switch(i

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論