




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
主講教師:本課學(xué)時(shí):聯(lián)系方式:C#程序設(shè)計(jì)教程第二章C#數(shù)據(jù)類(lèi)型與表達(dá)式
CONTENT本章主要內(nèi)容介紹2.1C#的基本語(yǔ)法2.2基本數(shù)據(jù)類(lèi)型
2.3常量
2.4變量
2.5表達(dá)式
2.6小結(jié)本章學(xué)習(xí)目標(biāo):掌握C#的基本語(yǔ)法熟練應(yīng)用C#的數(shù)據(jù)類(lèi)型熟練掌握各種運(yùn)算符的使用規(guī)則能夠根據(jù)需要寫(xiě)出正確的表達(dá)式2.1C#的基本語(yǔ)法1.Using關(guān)鍵字:用以引用Microsoft.Net框架類(lèi)庫(kù)中的現(xiàn)有資源。這些資源以命名空間的形式存在。2.System命名空間:提供了對(duì)構(gòu)建應(yīng)用程序所需的所有系統(tǒng)功能的訪(fǎng)問(wèn)。3.類(lèi):是C#應(yīng)用程序最基本的編程單元。4.Namespace關(guān)鍵字:使用Namespace關(guān)鍵字命名空間,可以把類(lèi)組織成一個(gè)邏輯上相關(guān)聯(lián)的層次結(jié)構(gòu)。5.Main方法:Main方法用來(lái)描述類(lèi)的行為。6.語(yǔ)句:是C#程序中執(zhí)行操作的指令,語(yǔ)句之間用分號(hào)分隔。語(yǔ)句可以寫(xiě)在一行,也可以寫(xiě)多行。7.大括號(hào):”{“和”}”用以標(biāo)識(shí)代碼塊的開(kāi)始和結(jié)束,必須配對(duì)使用。8.縮進(jìn):用來(lái)指出語(yǔ)句所處的代碼塊。9.區(qū)分大小寫(xiě):C#語(yǔ)言區(qū)分大小寫(xiě)。例如A和a是不同的變量。10:空白區(qū):除了引號(hào)中,編譯器會(huì)忽略所有的空白區(qū),可以用空白區(qū)來(lái)改善代碼格式。11.注釋?zhuān)涸诔绦蛑胁迦腚p斜桿”//”,可以隨后書(shū)寫(xiě)不跨行的注釋?zhuān)换蛘咭浴?*”開(kāi)始,以”*/”結(jié)束。關(guān)鍵字在C#中,關(guān)鍵字代表有特定功能的一些英文單詞,代表不同的含義,它們的顏色是特別的明顯的。但是他們不能在程序中用作變量名。2.2基本數(shù)據(jù)類(lèi)型C#中的數(shù)據(jù)類(lèi)型分為兩個(gè)基本類(lèi)別
值類(lèi)型
表示實(shí)際數(shù)據(jù)只是將值存放在內(nèi)存中
值類(lèi)型都存儲(chǔ)在堆棧中
簡(jiǎn)單類(lèi)型、枚舉、結(jié)構(gòu)引用類(lèi)型
表示指向數(shù)據(jù)的指針或引用是內(nèi)存堆中對(duì)象的地址
為null,則表示未引用任何對(duì)象類(lèi)、接口、數(shù)組和委托兩個(gè)特殊的類(lèi)object與string區(qū)別值類(lèi)型的變量本身包含他們的數(shù)據(jù),而引用類(lèi)型的變量包含的是指向包含數(shù)據(jù)的內(nèi)存塊的引用。
值類(lèi)型和引用類(lèi)型的區(qū)別,就在于當(dāng)函數(shù)參數(shù)傳遞的時(shí)候:
值類(lèi)型是把自己的值復(fù)制一份傳遞給別的函數(shù)操作.無(wú)論復(fù)制的值怎么被改變.其自身的值是不會(huì)改變的。
而引用類(lèi)型是把自己的內(nèi)存地址傳遞給別的函數(shù)操作.操作的就是引用類(lèi)型值的本身.所以值被函數(shù)改變了。這就是傳值和傳址的區(qū)別C#的基本數(shù)據(jù)類(lèi)型usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){//值類(lèi)型變量intperson=10;Console.WriteLine("person的原值:"+person);
Add(person);
Console.WriteLine("person的值并沒(méi)有因?yàn)楹瘮?shù)的修改而修改:"+person);
Console.ReadLine();
}
publicstaticvoidAdd(intperson)
{
person+=10;
Console.WriteLine("值類(lèi)型當(dāng)參數(shù)被傳遞并修改之后"+person);
}
}}輸出結(jié)果:C#的基本數(shù)據(jù)類(lèi)型usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){//引用類(lèi)型變量Personperson=newPerson();Console.WriteLine("Blood的原值:"+person.Blood);
Add(person);
Console.WriteLine("Blood的值因?yàn)楹瘮?shù)的修改而修改:"+person.Blood);
Console.ReadLine();
}
publicstaticvoidAdd(Personperson)
{
person.Blood+=10;
Console.WriteLine("引用類(lèi)型當(dāng)參數(shù)被傳遞并修改之后"+person.Blood);
}
}
classPerson
{
publicintBlood=10;
}}輸出結(jié)果:2.2基本數(shù)據(jù)類(lèi)型12345678910111213數(shù)值類(lèi)型的附加后綴。數(shù)值類(lèi)型的附加后綴類(lèi)別后綴描述整數(shù)U或u無(wú)符號(hào)L長(zhǎng)整形UL無(wú)符號(hào)長(zhǎng)整形實(shí)數(shù)F或f浮點(diǎn)型D或d雙精度型M或m十進(jìn)制decimalbalance=3400.20;//錯(cuò)誤decimalbalance=3400.20M;枚舉C#枚舉類(lèi)型(也稱(chēng)為枚舉)為定義一組可以賦給變量的命名整數(shù)常量提供了一種有效的方法。枚舉枚舉(enum,Enumerator的縮寫(xiě))是一組已命名的數(shù)值(整型)常量用enum關(guān)鍵字來(lái)創(chuàng)建枚舉publicenumWeekDays{ Monday, Tuesday, Wednesday, Thursday, Friday}
publicenumWeekDays{ Monday=1, Tuesday=2, Wednesday=3, Thursday=4, Friday=5}01234
枚舉的五個(gè)成員分別表示不同的值枚舉的使用:先創(chuàng)建,再聲明枚舉變量,系統(tǒng)預(yù)定義的枚舉使用枚舉的好處WeekDayswd;wd=WeekDays.Friday;//輸出變量wd,顯示Friday,不是4
枚舉賦值枚舉的應(yīng)用usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace枚舉應(yīng)用{publicclassEnumSample{enumColors{Red=1,Blue=2};publicstaticvoidMain(){EnummyColors=Colors.Red;Console.WriteLine("Thevalueofthisinstanceis{0}",myColors.ToString());Console.ReadLine();}}
}輸出結(jié)果:枚舉的用途
通過(guò)定義一個(gè)枚舉類(lèi)型,用它來(lái)保存一組數(shù)據(jù),比起用變量來(lái)保存這些數(shù)據(jù),枚舉類(lèi)型更能直觀地表示一組數(shù)據(jù)。structstructEx{publicintstructDataMember;
publicvoidstructMethod1(){ //structMethod1實(shí)現(xiàn)}}自定義數(shù)據(jù)類(lèi)型可以在其內(nèi)部定義方法無(wú)法實(shí)現(xiàn)繼承屬于值類(lèi)型主要結(jié)構(gòu):structstudent{ publicintstud_id; publicstringstud_name; publicfloatstud_marks; publicvoidshow_details() { //顯示學(xué)生詳細(xì)信息 }}結(jié)構(gòu)數(shù)據(jù)成員方法所有與Student關(guān)聯(lián)的詳細(xì)信息都可以作為一個(gè)整體進(jìn)行存儲(chǔ)和訪(fǎng)問(wèn)結(jié)構(gòu)的用途
實(shí)際應(yīng)用中,為了解決復(fù)雜的數(shù)據(jù)類(lèi)型,需要把一系列相關(guān)的變量組織成為一個(gè)整體的過(guò)程,我們需要用結(jié)構(gòu)來(lái)定義,用以減少程序的工作量,提高代碼的直觀性。2.3常量
語(yǔ)法:訪(fǎng)問(wèn)修飾符
const數(shù)據(jù)類(lèi)型常量名=常量值;PublicPrivateProtected常量用于在整個(gè)程序中將數(shù)據(jù)保持同一個(gè)值
常量usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace常量{classProgram{staticvoidMain(string[]args){//PI常量PIconstfloat_pi=3.14F;//由地球引力引起的加速度常量,單位為cm/s*sconstfloat_gravity=980;//鐘擺的長(zhǎng)度intlength=40;//鐘擺的周期doubleperiod=0;//鐘擺周期的計(jì)算公式period=2*_pi*Math.Sqrt(length/_gravity);Console.WriteLine("鐘擺的周期為{0}秒",period);Console.ReadKey();}}}聲明常量在表達(dá)式中使用常量const關(guān)鍵字用于聲明常量輸出結(jié)果:2.4變量語(yǔ)法:訪(fǎng)問(wèn)修飾符數(shù)據(jù)類(lèi)型變量名PublicPrivateProtectedintstringfloat……糖鹽胡椒粉鹽胡椒粉糖intfloatstring25.4“Test”變量用于存儲(chǔ)特定數(shù)據(jù)類(lèi)型的值doublefloat2.4變量usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace變量_2_{classProgram{staticvoidMain(string[]args){//聲明布爾型、字符串型、整型、短整型和浮點(diǎn)型變量booltest=true;stringval="Jamie";shortnum1=19;intnum2=14000;floatnum3=14.5f;//顯示變量值 Console.WriteLine("布爾值="+test);
Console.WriteLine("字符串值="+val);
Console.WriteLine("短整型值="+num1);
Console.WriteLine("整型值="+num2);
Console.WriteLine("浮點(diǎn)值="+num3);
Console.ReadKey();
}
}}變量中存儲(chǔ)的值取決于該變量的類(lèi)型輸出結(jié)果:2.5表達(dá)式
使用C#中的運(yùn)算符和表達(dá)式算術(shù)運(yùn)算符和表達(dá)式關(guān)系運(yùn)算符和表達(dá)式
邏輯運(yùn)算符和表達(dá)式
位運(yùn)算符賦值運(yùn)算符和表達(dá)式
條件運(yùn)算符和表達(dá)式
表達(dá)式中的類(lèi)型轉(zhuǎn)換運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式Result=number*100變量變量常量操作數(shù)表達(dá)式操作數(shù)和運(yùn)算符的組合運(yùn)算符一元、二元、三元運(yùn)算符算術(shù)運(yùn)算符和表達(dá)式
類(lèi)別運(yùn)算符說(shuō)明表達(dá)式算術(shù)運(yùn)算符+執(zhí)行加法運(yùn)算(如果兩個(gè)操作數(shù)是字符串,則該運(yùn)算符用作字符串連接運(yùn)算符,將一個(gè)字符串添加到另一個(gè)字符串的末尾)操作數(shù)1+操作數(shù)2-執(zhí)行減法運(yùn)算操作數(shù)1-操作數(shù)2*執(zhí)行乘法運(yùn)算操作數(shù)1*操作數(shù)2/執(zhí)行除法運(yùn)算操作數(shù)1/操作數(shù)2%獲得進(jìn)行除法運(yùn)算后的余數(shù)操作數(shù)1%操作數(shù)2++將操作數(shù)加1操作數(shù)++或++操作數(shù)--將操作數(shù)減1操作數(shù)--或--操作數(shù)~將一個(gè)數(shù)按位取反
~操作數(shù)算術(shù)運(yùn)算符usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace算術(shù)運(yùn)算符{classProgram{staticvoidMain(string[]args){//x2的系數(shù)intcoefficient1=2;//x的系數(shù)intcoefficient2=-7;//二次方程的常數(shù)值intconstant=3;//存放表達(dá)式b2-4ac的值doubleexpression=0;doublex1=0;doublex2=0;Console.WriteLine("二次方程為:{0}x2+{1}x+{2}",coefficient1,coefficient2,constant);
expression=Math.Sqrt(coefficient2*coefficient2-(4*coefficient1*constant));
x1=((-coefficient2)+expression)/(2*coefficient1);
x2=((-coefficient2)-expression)/(2*coefficient1);
Console.Write("x={0:F2}",x1);
Console.Write("或");Console.WriteLine("x={0:F2}",x2);Console.ReadKey();}}}將值賦給變量在表達(dá)式中使用的算術(shù)運(yùn)算符輸出結(jié)果:關(guān)系運(yùn)算符和表達(dá)式
類(lèi)別運(yùn)算符說(shuō)明表達(dá)式關(guān)系運(yùn)算符>檢查一個(gè)數(shù)是否大于另一個(gè)數(shù)
操作數(shù)1>操作數(shù)2<檢查一個(gè)數(shù)是否小于另一個(gè)數(shù)
操作數(shù)1<操作數(shù)2>=檢查一個(gè)數(shù)是否大于或等于另一個(gè)數(shù)
操作數(shù)1>=操作數(shù)2<=檢查一個(gè)數(shù)是否小于或等于另一個(gè)數(shù)
操作數(shù)1<=操作數(shù)2==檢查兩個(gè)值是否相等
操作數(shù)1==操作數(shù)2!=檢查兩個(gè)值是否不相等操作數(shù)1!=操作數(shù)2關(guān)系運(yùn)算符usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace關(guān)系運(yùn)算符{classProgram{staticvoidMain(string[]args){inta=25,b=3;boold=a>b;Console.WriteLine("a<b:"+d);inte=3;if(e!=0&&a/e>5)Console.WriteLine("a/e:"+a/e);intf=0;if(f!=0&&a/f>5)Console.WriteLine("a/f:"+a/f);elseConsole.WriteLine("f="+f);Console.ReadKey();}}}輸出結(jié)果:邏輯運(yùn)算符和表達(dá)式
類(lèi)別運(yùn)算符說(shuō)明表達(dá)式邏輯運(yùn)算符&&對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“與”運(yùn)算
操作數(shù)1&&操作數(shù)2||對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“或”運(yùn)算操作數(shù)1||操作數(shù)2!對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“非”運(yùn)算!操作數(shù)()將操作數(shù)強(qiáng)制轉(zhuǎn)換為給定的數(shù)據(jù)類(lèi)型
(數(shù)據(jù)類(lèi)型)操作數(shù)邏輯運(yùn)算符和表達(dá)式usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace邏輯運(yùn)算符{classProgram{staticvoidMain(string[]args){inta=23,b=34;doublec=1.1,d=2.2;if(a>30&&b>30)Console.WriteLine("false");elseConsole.WriteLine("true");if(a>2.0&&b>2.0)Console.WriteLine("false");elseConsole.WriteLine("true");Console.ReadKey();}}}輸出結(jié)果:位運(yùn)算符類(lèi)別運(yùn)算符說(shuō)明表達(dá)式位運(yùn)算符>>用于將左操作數(shù)的每一個(gè)二進(jìn)制位左移右操作數(shù)位
操作數(shù)>>2<<用于將左操作數(shù)的每一個(gè)二進(jìn)制位左移右操作數(shù)位操作數(shù)<<2&用于把兩個(gè)操作數(shù)對(duì)應(yīng)的二進(jìn)制位進(jìn)行邏輯與操作
操作數(shù)1&操作數(shù)2|用于把兩個(gè)操作數(shù)對(duì)應(yīng)的二進(jìn)制位進(jìn)行邏輯或操作
操作數(shù)1|操作數(shù)2^用于把兩個(gè)操作數(shù)對(duì)應(yīng)的二進(jìn)制位進(jìn)行異或操作
操作數(shù)1^操作數(shù)2~對(duì)操作數(shù)取反~操作數(shù)位運(yùn)算符usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace位運(yùn)算符{classProgram{staticvoidMain(string[]args){intx=16;Console.WriteLine(x);inty=x>>2;Console.WriteLine(y);y=y>>2;Console.WriteLine(y);y=y>>2;Console.WriteLine(y);Console.ReadKey();}}}輸出結(jié)果:賦值運(yùn)算符和表達(dá)式
類(lèi)別運(yùn)算符計(jì)算方法表達(dá)式賦值運(yùn)算符+=運(yùn)算結(jié)果=操作數(shù)1+操作數(shù)2X+=5-=運(yùn)算結(jié)果=操作數(shù)1-操作數(shù)2X-=5*=運(yùn)算結(jié)果=操作數(shù)1*操作數(shù)2X*=5/=運(yùn)算結(jié)果=操作數(shù)1/操作數(shù)2X/=5%=運(yùn)算結(jié)果=操作數(shù)1%操作數(shù)2X%=5賦值運(yùn)算符類(lèi)別運(yùn)算符說(shuō)明表達(dá)式賦值運(yùn)算符=給變量賦值操作數(shù)1=操作數(shù)22.5.5賦值運(yùn)算符和表達(dá)式
賦值運(yùn)算符(=)變量=表達(dá)式;例如:身高=177.5;體重=78;性別=“m”;條件運(yùn)算符和表達(dá)式
類(lèi)別運(yùn)算符說(shuō)明表達(dá)式三元運(yùn)算符(條件運(yùn)算符)?:檢查給出的第一個(gè)表達(dá)式expression是否為真。如果為真,則計(jì)算operand1,否則計(jì)算operand2。這是唯一帶有三個(gè)操作數(shù)的運(yùn)算符
表達(dá)式?操作數(shù)1:操作數(shù)2條件運(yùn)算符和表達(dá)式
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;classMainClass{staticdoublesinc(doublex){doubles=(x!=0.0)?Math.Sin(x)/x:1.0;returns;}staticvoidMain(){Console.WriteLine(sinc(0.2));Console.WriteLine(sinc(0.1));Console.WriteLine(sinc(0.0));Console.ReadLine();}}輸出結(jié)果:表達(dá)式中的類(lèi)型轉(zhuǎn)換
生活例子:動(dòng)物園有兩扇可以調(diào)整高度的門(mén),一般情況下,動(dòng)物分兩類(lèi):相對(duì)高大的動(dòng)物和相對(duì)矮小的動(dòng)物。高大的動(dòng)物進(jìn)高的門(mén),矮小的動(dòng)物進(jìn)低的門(mén)。如果這時(shí)動(dòng)物們有特殊情況,矮小的動(dòng)物默許進(jìn)入高的門(mén),高大的動(dòng)物需要強(qiáng)制調(diào)整門(mén)的高度才可以進(jìn)入。這就是類(lèi)型轉(zhuǎn)換的原理。隱式轉(zhuǎn)換動(dòng)物園有兩扇可以調(diào)整高度的門(mén),一般情況下,動(dòng)物分兩類(lèi):相對(duì)高的動(dòng)物和相對(duì)低的動(dòng)物。高
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 絡(luò)稅務(wù)籌劃報(bào)價(jià)方案(3篇)
- 廠(chǎng)區(qū)監(jiān)控配置方案(3篇)
- 化工園區(qū)封閉方案(3篇)
- 排澇搶險(xiǎn)應(yīng)急預(yù)案方案(3篇)
- 財(cái)稅項(xiàng)目銷(xiāo)售方案(3篇)
- 新增耕地獎(jiǎng)勵(lì)措施方案(3篇)
- 食堂三防建設(shè)方案(3篇)
- 股權(quán)分配方案模板(3篇)
- 臨時(shí)接待保潔服務(wù)方案(3篇)
- 花店閣樓改造方案(3篇)
- 2024人教版初中英語(yǔ)單詞詞匯表默寫(xiě)背誦(中考復(fù)習(xí)必背)
- 2022年江蘇省春季高考數(shù)學(xué)試卷
- 分期繳納罰款保證書(shū)
- 2023年內(nèi)蒙古烏海市委組織部選用事業(yè)編制人員6人筆試參考題庫(kù)(共500題)答案詳解版
- 醫(yī)院護(hù)理培訓(xùn)課件:《母嬰同室病房醫(yī)院感染預(yù)防與控制》
- 國(guó)際尿失禁咨詢(xún)委員會(huì)尿失禁問(wèn)卷表
- 面試性格測(cè)試表
- XXX加油站風(fēng)險(xiǎn)分級(jí)管控臺(tái)賬
- 特種設(shè)備安全管理-使用知識(shí)
- H35-462(5G中級(jí))認(rèn)證考試題庫(kù)(附答案)
- HY/T 122-2009海洋傾倒區(qū)選劃技術(shù)導(dǎo)則
評(píng)論
0/150
提交評(píng)論