版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
主講教師:本課學(xué)時:聯(lián)系方式:C#程序設(shè)計教程第二章C#數(shù)據(jù)類型與表達式
CONTENT本章主要內(nèi)容介紹2.1C#的基本語法2.2基本數(shù)據(jù)類型
2.3常量
2.4變量
2.5表達式
2.6小結(jié)本章學(xué)習(xí)目標(biāo):掌握C#的基本語法熟練應(yīng)用C#的數(shù)據(jù)類型熟練掌握各種運算符的使用規(guī)則能夠根據(jù)需要寫出正確的表達式2.1C#的基本語法1.Using關(guān)鍵字:用以引用Microsoft.Net框架類庫中的現(xiàn)有資源。這些資源以命名空間的形式存在。2.System命名空間:提供了對構(gòu)建應(yīng)用程序所需的所有系統(tǒng)功能的訪問。3.類:是C#應(yīng)用程序最基本的編程單元。4.Namespace關(guān)鍵字:使用Namespace關(guān)鍵字命名空間,可以把類組織成一個邏輯上相關(guān)聯(lián)的層次結(jié)構(gòu)。5.Main方法:Main方法用來描述類的行為。6.語句:是C#程序中執(zhí)行操作的指令,語句之間用分號分隔。語句可以寫在一行,也可以寫多行。7.大括號:”{“和”}”用以標(biāo)識代碼塊的開始和結(jié)束,必須配對使用。8.縮進:用來指出語句所處的代碼塊。9.區(qū)分大小寫:C#語言區(qū)分大小寫。例如A和a是不同的變量。10:空白區(qū):除了引號中,編譯器會忽略所有的空白區(qū),可以用空白區(qū)來改善代碼格式。11.注釋:在程序中插入雙斜桿”//”,可以隨后書寫不跨行的注釋;或者以”/*”開始,以”*/”結(jié)束。關(guān)鍵字在C#中,關(guān)鍵字代表有特定功能的一些英文單詞,代表不同的含義,它們的顏色是特別的明顯的。但是他們不能在程序中用作變量名。2.2基本數(shù)據(jù)類型C#中的數(shù)據(jù)類型分為兩個基本類別
值類型
表示實際數(shù)據(jù)只是將值存放在內(nèi)存中
值類型都存儲在堆棧中
簡單類型、枚舉、結(jié)構(gòu)引用類型
表示指向數(shù)據(jù)的指針或引用是內(nèi)存堆中對象的地址
為null,則表示未引用任何對象類、接口、數(shù)組和委托兩個特殊的類object與string區(qū)別值類型的變量本身包含他們的數(shù)據(jù),而引用類型的變量包含的是指向包含數(shù)據(jù)的內(nèi)存塊的引用。
值類型和引用類型的區(qū)別,就在于當(dāng)函數(shù)參數(shù)傳遞的時候:
值類型是把自己的值復(fù)制一份傳遞給別的函數(shù)操作.無論復(fù)制的值怎么被改變.其自身的值是不會改變的。
而引用類型是把自己的內(nèi)存地址傳遞給別的函數(shù)操作.操作的就是引用類型值的本身.所以值被函數(shù)改變了。這就是傳值和傳址的區(qū)別C#的基本數(shù)據(jù)類型usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){//值類型變量intperson=10;Console.WriteLine("person的原值:"+person);
Add(person);
Console.WriteLine("person的值并沒有因為函數(shù)的修改而修改:"+person);
Console.ReadLine();
}
publicstaticvoidAdd(intperson)
{
person+=10;
Console.WriteLine("值類型當(dāng)參數(shù)被傳遞并修改之后"+person);
}
}}輸出結(jié)果:C#的基本數(shù)據(jù)類型usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){//引用類型變量Personperson=newPerson();Console.WriteLine("Blood的原值:"+person.Blood);
Add(person);
Console.WriteLine("Blood的值因為函數(shù)的修改而修改:"+person.Blood);
Console.ReadLine();
}
publicstaticvoidAdd(Personperson)
{
person.Blood+=10;
Console.WriteLine("引用類型當(dāng)參數(shù)被傳遞并修改之后"+person.Blood);
}
}
classPerson
{
publicintBlood=10;
}}輸出結(jié)果:2.2基本數(shù)據(jù)類型12345678910111213數(shù)值類型的附加后綴。數(shù)值類型的附加后綴類別后綴描述整數(shù)U或u無符號L長整形UL無符號長整形實數(shù)F或f浮點型D或d雙精度型M或m十進制decimalbalance=3400.20;//錯誤decimalbalance=3400.20M;枚舉C#枚舉類型(也稱為枚舉)為定義一組可以賦給變量的命名整數(shù)常量提供了一種有效的方法。枚舉枚舉(enum,Enumerator的縮寫)是一組已命名的數(shù)值(整型)常量用enum關(guān)鍵字來創(chuàng)建枚舉publicenumWeekDays{ Monday, Tuesday, Wednesday, Thursday, Friday}
publicenumWeekDays{ Monday=1, Tuesday=2, Wednesday=3, Thursday=4, Friday=5}01234
枚舉的五個成員分別表示不同的值枚舉的使用:先創(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é)果:枚舉的用途
通過定義一個枚舉類型,用它來保存一組數(shù)據(jù),比起用變量來保存這些數(shù)據(jù),枚舉類型更能直觀地表示一組數(shù)據(jù)。structstructEx{publicintstructDataMember;
publicvoidstructMethod1(){ //structMethod1實現(xiàn)}}自定義數(shù)據(jù)類型可以在其內(nèi)部定義方法無法實現(xiàn)繼承屬于值類型主要結(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ì)信息都可以作為一個整體進行存儲和訪問結(jié)構(gòu)的用途
實際應(yīng)用中,為了解決復(fù)雜的數(shù)據(jù)類型,需要把一系列相關(guān)的變量組織成為一個整體的過程,我們需要用結(jié)構(gòu)來定義,用以減少程序的工作量,提高代碼的直觀性。2.3常量
語法:訪問修飾符
const數(shù)據(jù)類型常量名=常量值;PublicPrivateProtected常量用于在整個程序中將數(shù)據(jù)保持同一個值
常量usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace常量{classProgram{staticvoidMain(string[]args){//PI常量PIconstfloat_pi=3.14F;//由地球引力引起的加速度常量,單位為cm/s*sconstfloat_gravity=980;//鐘擺的長度intlength=40;//鐘擺的周期doubleperiod=0;//鐘擺周期的計算公式period=2*_pi*Math.Sqrt(length/_gravity);Console.WriteLine("鐘擺的周期為{0}秒",period);Console.ReadKey();}}}聲明常量在表達式中使用常量const關(guān)鍵字用于聲明常量輸出結(jié)果:2.4變量語法:訪問修飾符數(shù)據(jù)類型變量名PublicPrivateProtectedintstringfloat……糖鹽胡椒粉鹽胡椒粉糖intfloatstring25.4“Test”變量用于存儲特定數(shù)據(jù)類型的值doublefloat2.4變量usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace變量_2_{classProgram{staticvoidMain(string[]args){//聲明布爾型、字符串型、整型、短整型和浮點型變量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("浮點值="+num3);
Console.ReadKey();
}
}}變量中存儲的值取決于該變量的類型輸出結(jié)果:2.5表達式
使用C#中的運算符和表達式算術(shù)運算符和表達式關(guān)系運算符和表達式
邏輯運算符和表達式
位運算符賦值運算符和表達式
條件運算符和表達式
表達式中的類型轉(zhuǎn)換運算符和表達式運算符和表達式Result=number*100變量變量常量操作數(shù)表達式操作數(shù)和運算符的組合運算符一元、二元、三元運算符算術(shù)運算符和表達式
類別運算符說明表達式算術(shù)運算符+執(zhí)行加法運算(如果兩個操作數(shù)是字符串,則該運算符用作字符串連接運算符,將一個字符串添加到另一個字符串的末尾)操作數(shù)1+操作數(shù)2-執(zhí)行減法運算操作數(shù)1-操作數(shù)2*執(zhí)行乘法運算操作數(shù)1*操作數(shù)2/執(zhí)行除法運算操作數(shù)1/操作數(shù)2%獲得進行除法運算后的余數(shù)操作數(shù)1%操作數(shù)2++將操作數(shù)加1操作數(shù)++或++操作數(shù)--將操作數(shù)減1操作數(shù)--或--操作數(shù)~將一個數(shù)按位取反
~操作數(shù)算術(shù)運算符usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace算術(shù)運算符{classProgram{staticvoidMain(string[]args){//x2的系數(shù)intcoefficient1=2;//x的系數(shù)intcoefficient2=-7;//二次方程的常數(shù)值intconstant=3;//存放表達式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();}}}將值賦給變量在表達式中使用的算術(shù)運算符輸出結(jié)果:關(guān)系運算符和表達式
類別運算符說明表達式關(guān)系運算符>檢查一個數(shù)是否大于另一個數(shù)
操作數(shù)1>操作數(shù)2<檢查一個數(shù)是否小于另一個數(shù)
操作數(shù)1<操作數(shù)2>=檢查一個數(shù)是否大于或等于另一個數(shù)
操作數(shù)1>=操作數(shù)2<=檢查一個數(shù)是否小于或等于另一個數(shù)
操作數(shù)1<=操作數(shù)2==檢查兩個值是否相等
操作數(shù)1==操作數(shù)2!=檢查兩個值是否不相等操作數(shù)1!=操作數(shù)2關(guān)系運算符usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace關(guā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é)果:邏輯運算符和表達式
類別運算符說明表達式邏輯運算符&&對兩個表達式執(zhí)行邏輯“與”運算
操作數(shù)1&&操作數(shù)2||對兩個表達式執(zhí)行邏輯“或”運算操作數(shù)1||操作數(shù)2!對兩個表達式執(zhí)行邏輯“非”運算!操作數(shù)()將操作數(shù)強制轉(zhuǎn)換為給定的數(shù)據(jù)類型
(數(shù)據(jù)類型)操作數(shù)邏輯運算符和表達式usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace邏輯運算符{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é)果:位運算符類別運算符說明表達式位運算符>>用于將左操作數(shù)的每一個二進制位左移右操作數(shù)位
操作數(shù)>>2<<用于將左操作數(shù)的每一個二進制位左移右操作數(shù)位操作數(shù)<<2&用于把兩個操作數(shù)對應(yīng)的二進制位進行邏輯與操作
操作數(shù)1&操作數(shù)2|用于把兩個操作數(shù)對應(yīng)的二進制位進行邏輯或操作
操作數(shù)1|操作數(shù)2^用于把兩個操作數(shù)對應(yīng)的二進制位進行異或操作
操作數(shù)1^操作數(shù)2~對操作數(shù)取反~操作數(shù)位運算符usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace位運算符{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é)果:賦值運算符和表達式
類別運算符計算方法表達式賦值運算符+=運算結(jié)果=操作數(shù)1+操作數(shù)2X+=5-=運算結(jié)果=操作數(shù)1-操作數(shù)2X-=5*=運算結(jié)果=操作數(shù)1*操作數(shù)2X*=5/=運算結(jié)果=操作數(shù)1/操作數(shù)2X/=5%=運算結(jié)果=操作數(shù)1%操作數(shù)2X%=5賦值運算符類別運算符說明表達式賦值運算符=給變量賦值操作數(shù)1=操作數(shù)22.5.5賦值運算符和表達式
賦值運算符(=)變量=表達式;例如:身高=177.5;體重=78;性別=“m”;條件運算符和表達式
類別運算符說明表達式三元運算符(條件運算符)?:檢查給出的第一個表達式expression是否為真。如果為真,則計算operand1,否則計算operand2。這是唯一帶有三個操作數(shù)的運算符
表達式?操作數(shù)1:操作數(shù)2條件運算符和表達式
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é)果:表達式中的類型轉(zhuǎn)換
生活例子:動物園有兩扇可以調(diào)整高度的門,一般情況下,動物分兩類:相對高大的動物和相對矮小的動物。高大的動物進高的門,矮小的動物進低的門。如果這時動物們有特殊情況,矮小的動物默許進入高的門,高大的動物需要強制調(diào)整門的高度才可以進入。這就是類型轉(zhuǎn)換的原理。隱式轉(zhuǎn)換動物園有兩扇可以調(diào)整高度的門,一般情況下,動物分兩類:相對高的動物和相對低的動物。高
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)游戲XX游戲公司游戲設(shè)計師實習(xí)報告
- 環(huán)境保護環(huán)保咨詢公司環(huán)保咨詢實習(xí)報告
- 電力建設(shè)項目安全管理措施及執(zhí)行方案
- 骨干員工培養(yǎng)方案
- 售后服務(wù)方案
- 大班秋季育兒知識
- 建筑工程投標(biāo)報價成本核算技巧
- 公路路網(wǎng)建設(shè)工作方案
- 白羽雞行業(yè)價值分析報告
- 木門行業(yè)細(xì)分市場分析報告
- 2026年甘肅省公信科技有限公司面向社會招聘80人(第一批)筆試備考試題及答案解析
- 大雪冰凍災(zāi)害應(yīng)急預(yù)案(道路結(jié)冰、設(shè)施覆冰)
- 通信設(shè)備維護與保養(yǎng)指南
- 2026年幼兒教師公招考試試題及答案
- 2025年度法院拍賣合同模板:法院拍賣拍賣保證金退還合同
- 海關(guān)特殊監(jiān)管區(qū)域?qū)n}政策法規(guī)匯編 2025
- 《浙江省城市體檢工作技術(shù)導(dǎo)則(試行)》
- 人教統(tǒng)編版(部編版)小學(xué)科學(xué)教材目錄
- DB34∕T 1555-2011 存量房交易計稅價格評估技術(shù)規(guī)范
- 青少年無人機課程:第一課-馬上起飛
- 煙道安裝服務(wù)合同范本
評論
0/150
提交評論