《C#程序設(shè)計(jì)》課件第4章運(yùn)算符與語句_第1頁
《C#程序設(shè)計(jì)》課件第4章運(yùn)算符與語句_第2頁
《C#程序設(shè)計(jì)》課件第4章運(yùn)算符與語句_第3頁
《C#程序設(shè)計(jì)》課件第4章運(yùn)算符與語句_第4頁
《C#程序設(shè)計(jì)》課件第4章運(yùn)算符與語句_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

運(yùn)算符與語句思政目標(biāo):

?加強(qiáng)動手能力,培養(yǎng)實(shí)事求是、嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度

?認(rèn)真修改并測試程序代碼,樹立新時期下的程序員精神技能要求:

?熟練掌握程序各種語句

?掌握C#中的運(yùn)算符實(shí)踐目標(biāo):

?根據(jù)所學(xué)的示例,能夠自己實(shí)現(xiàn)一個簡單程序

?熟練掌握語句,能夠在不同條件下正確使用第4章運(yùn)算符運(yùn)算符的優(yōu)先級流程控制語句運(yùn)算符運(yùn)算符是用來標(biāo)明數(shù)值或表達(dá)式運(yùn)算規(guī)則的一種符號標(biāo)記,它所操作的數(shù)值稱為操作數(shù)。01PART表達(dá)式就是由運(yùn)算符和操作數(shù)組合而成。根據(jù)操作數(shù)的個數(shù),運(yùn)算符可以分為一元運(yùn)算符、二元運(yùn)算符和三元運(yùn)算符。運(yùn)算符例如,取負(fù)(-)、取反(~)、自增(++)和自減(--)都是典型的一元運(yùn)算符;而四則運(yùn)算符(+、—、*、/)則是典型的二元運(yùn)算符;三元運(yùn)算符僅有一個,那就是條件運(yùn)算符(?:),可以用來改寫簡單的if結(jié)構(gòu)語句。運(yùn)算符算術(shù)運(yùn)算符運(yùn)算符運(yùn)算符說明示例+加ints=2012+2015;inti=0,j=1;intk=i+j;—減ints=2012-2015;inti=0,j=1;intk=i-j;*乘ints=2012*2015;inti=0,j=1;intk=i*j;/除ints=2012/15;inti=2020,j=10;intk=i/j;%取模ints=2012%15;inti=2020,j=10;intk=i%j;++自增1inti=2012;intj=i++,k=++i;--自減1inti=2015;intj=i--,k=--i;整型數(shù)據(jù)的除法運(yùn)算與數(shù)學(xué)中的運(yùn)算略有差別。整數(shù)相除時沒有問題,兩個整數(shù)相除時,其結(jié)果仍然是整數(shù)。運(yùn)算符算術(shù)運(yùn)算符只要參與運(yùn)算的操作數(shù)中有一個是浮點(diǎn)型,則其作除法的結(jié)果也是浮點(diǎn)型。可以對比整數(shù)相除時的結(jié)果運(yùn)算符算術(shù)運(yùn)算符此外,還需要特別強(qiáng)調(diào)取模運(yùn)算符(%)。它是用于計(jì)算兩個操作數(shù)相除的余數(shù),其結(jié)果為一個非負(fù)整數(shù),即使對于非整數(shù)除法而言也是如此應(yīng)注意的是,如果運(yùn)算結(jié)果超過了變量類型的上限,就會造成溢出,所以要學(xué)會選用合適的數(shù)據(jù)類型進(jìn)行數(shù)值計(jì)算。運(yùn)算符算術(shù)運(yùn)算符關(guān)系運(yùn)算符運(yùn)算符運(yùn)算符說明運(yùn)算符說明==等于<小于!=不等于<=小于或等于>大于>=大于或等于關(guān)系運(yùn)算符的運(yùn)算結(jié)果是布爾值,要么為true,要么為false。關(guān)系運(yùn)算符用于比較兩個操作數(shù)的大小關(guān)系,值是比較的結(jié)果==與=表示含義并不相同,前者表示相等,后者表示賦值運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符運(yùn)算符運(yùn)算符說明運(yùn)算符說明=賦值<<=左移賦值+=加法賦值>>=右移賦值-=減法賦值&=and位操作賦值*=乘法賦值|=or位操作賦值/=除法賦值^=xor位操作賦值%=取模賦值賦值運(yùn)算符是將右操作數(shù)賦給左操作數(shù),賦值后,不僅左操作獲得了這個數(shù),整個表達(dá)式的結(jié)果也獲得了這個數(shù)。根據(jù)這個特點(diǎn),可以采取串聯(lián)賦值方式一次給多個變量賦相同的值,進(jìn)而簡化編碼過程運(yùn)算符賦值運(yùn)算符邏輯運(yùn)算符運(yùn)算符運(yùn)算類型值x&yx和y同時為1時,結(jié)果為1,其他情況結(jié)果均為0x|yx和y任一個為1時,結(jié)果為1,同時為0時結(jié)果為0x^yx和y同為0或1時,結(jié)果為0,x和y的取值不同時結(jié)果為1~Xx為0時結(jié)果為1,x為1時結(jié)果為0邏輯運(yùn)算符有&、|、!、^、~、&&、||。其中,&和|執(zhí)行按位的“與”和“或”,而~和^執(zhí)行按位的“非”和“異或”。&&和||執(zhí)行布爾的“與”和“或”,而!執(zhí)行布爾的“非”。另外,要注意區(qū)分位運(yùn)算和布爾運(yùn)算。運(yùn)算符邏輯運(yùn)算符運(yùn)算類型值x&yx和y同時為1時,結(jié)果為1,其他情況結(jié)果均為0x|yx和y任一個為1時,結(jié)果為1,同時為0時結(jié)果為0x^yx和y同為0或1時,結(jié)果為0,x和y的取值不同時結(jié)果為1~Xx為0時結(jié)果為1,x為1時結(jié)果為0將運(yùn)算數(shù)據(jù)相應(yīng)的二進(jìn)制數(shù)據(jù)進(jìn)行的計(jì)算即為位運(yùn)算運(yùn)算符邏輯運(yùn)算符運(yùn)算類型值x&&yx和y同時為true時,結(jié)果為true;其他情況結(jié)果均為falsex||yx和y任一個為true時,結(jié)果為true;同時為false時,結(jié)果為false;!xx為true,結(jié)果為false;x為false時,結(jié)果為true布爾值的邏輯運(yùn)算結(jié)果第一個條件x==1不成立,而第二個條件y==3成立,因?yàn)閤==1與y==3并不同時為true,所以進(jìn)行“與”運(yùn)算的最后結(jié)果是false,因此,布爾型的result返回值是false。條件運(yùn)算符運(yùn)算符條件運(yùn)算符是一個三元運(yùn)算符,由“?”和“:”組成,以條件運(yùn)算符構(gòu)成的表達(dá)式稱為條件表達(dá)式。其一般格式如下:操作數(shù)1?操作數(shù)2:操作數(shù)3操作數(shù)1的值必須為布爾值。進(jìn)行條件運(yùn)算之前,需要先對問號前面的布爾值進(jìn)行判斷,判斷其為true還是false。若結(jié)果為true,則條件表達(dá)式的值等于操作數(shù)2的值;若結(jié)果為false,則條件表達(dá)式的值等于操作數(shù)3的值。位運(yùn)算符運(yùn)算符位運(yùn)算符表示對運(yùn)算對象進(jìn)行的位運(yùn)算,可分為按位運(yùn)算(&、|、~、^)和移位運(yùn)算(>>、<<)兩類,除按位取反運(yùn)算符(~)為一元運(yùn)算符外,其他均為二元運(yùn)算符。位運(yùn)算的本質(zhì)是邏輯運(yùn)算。運(yùn)算符說明運(yùn)算符說明&and(與)|or(或)~取反^xor(異或)>>右移位<<左移位位運(yùn)算符運(yùn)算符位邏輯與運(yùn)算將兩個運(yùn)算對象按位進(jìn)行與運(yùn)算。與運(yùn)算的規(guī)則:1&1=1,1&0=0,0&1=0,0&0=0按位與運(yùn)算符&10110000

注:首行和首列表示操作數(shù),其他表示運(yùn)算結(jié)果。位運(yùn)算符運(yùn)算符位邏輯或運(yùn)算將兩個運(yùn)算對象按位進(jìn)行或運(yùn)算?;蜻\(yùn)算的規(guī)則是:1|1=1,1|0=1,0|0=0,0|1=1。例如,10010001(二進(jìn)制)|11110000(二進(jìn)制)等于11110001(二進(jìn)制)按位或運(yùn)算規(guī)則

注:首行和首列表示操作數(shù),其他表示運(yùn)算結(jié)果。|10111010位運(yùn)算符運(yùn)算符位邏輯取反運(yùn)算只需一個運(yùn)算對象,是單目運(yùn)算符。位邏輯取反運(yùn)算按位對運(yùn)算對象的值進(jìn)行取反運(yùn)算,即如果某一位等于1,就將其轉(zhuǎn)換為0;如果某一位等于0,就將其轉(zhuǎn)換為1。例如,對二進(jìn)制的10010001進(jìn)行位邏輯取反運(yùn)算,結(jié)果等于01101110;對二進(jìn)制的01010101進(jìn)行位邏輯取反運(yùn)算,結(jié)果等于10101010。按位取反運(yùn)算規(guī)則

注:首行和首列表示操作數(shù),其他表示運(yùn)算結(jié)果。10~01位運(yùn)算符運(yùn)算符位邏輯異或運(yùn)算將兩個運(yùn)算對象按位進(jìn)行異或運(yùn)算。異或運(yùn)算的規(guī)則是,1^1=0,1^0=1,0^0=0,0^1=1,即相同得0,相異得1。例如,10010001(二進(jìn)制)^11110000(二進(jìn)制)=01100001(二進(jìn)制)。按位異或運(yùn)算規(guī)則

注:首行和首列表示操作數(shù),其他表示運(yùn)算結(jié)果。^10101010位運(yùn)算符運(yùn)算符位右移運(yùn)算將整個數(shù)按位右移若干位,右移后空出的部分填0。例如,8位的byte型變量bytei=0x65(即十進(jìn)制101)將其右移3位:i>>3的結(jié)果是0x0C(十進(jìn)制12)。位運(yùn)算符運(yùn)算符位左移運(yùn)算將整個數(shù)按位左移若干位,左移后空出的部分補(bǔ)0。例如,8位的byte型變量bytei=0x65(即十進(jìn)制是101),將其左移3位:i<<3的結(jié)果是0x28(即十進(jìn)制是40)010203自增運(yùn)算符(++)和自減運(yùn)算符(--)的使用頻率相對較高,它們都具有兩種形式:前綴和后綴前綴自增便是++在操作符前面,如++i;后綴自增便是++在操作符后面,如i++。兩者都是實(shí)現(xiàn)i遞增1,即i=i+1。以++i為例,前綴自增的計(jì)算方式是:直接將i=i+1,并將和值返回。以i++為例,后綴自增的計(jì)算方式是:先將i的初值返回,再完成i=i+1。運(yùn)算符自增自減運(yùn)算符初看此結(jié)果,或許會認(rèn)為i沒有被遞增,其實(shí)i已經(jīng)被遞增。根據(jù)上述計(jì)算方式,將i++輸出時,先將i的原值12返回,交給Console.WriteLine進(jìn)行輸出,所以輸出12,這之后才完成遞增,而++j則將j由12遞增為13,然后才返回并交給Console.WriteLine進(jìn)行輸出,故輸出13。運(yùn)算符從上面的敘述可以推測,若再增加一次i的輸出,將會輸出13,表示i的確已經(jīng)被遞增了運(yùn)算符自增與自減運(yùn)算一般用于整型數(shù)據(jù)類型變量,事實(shí)上,除用在整型數(shù)據(jù)類型變量外,這兩種運(yùn)算方式同樣可以用在其他數(shù)據(jù)類型上面,如浮點(diǎn)類型運(yùn)算符的優(yōu)先級02PART常見運(yùn)算符的優(yōu)先級運(yùn)算符的優(yōu)先級運(yùn)算符類型運(yùn)算符初級運(yùn)算符(),[],x.y,++(后綴),--(后綴),new,sizeof,typeof,checked/unchecked一元運(yùn)算符!,~,++(前綴),--(前綴),(T)x乘除、取模運(yùn)算符*,/,%增量運(yùn)算符+,-移位運(yùn)算符<<,>>關(guān)系運(yùn)算符<,>,<=,>=,is,as等式運(yùn)算符==,!=邏輯與運(yùn)算符&邏輯異或運(yùn)算符^邏輯或運(yùn)算符|條件與運(yùn)算符&&條件或運(yùn)算符||條件運(yùn)算符?:賦值運(yùn)算符=,*=,/=,+=,-=,<<=,>>=,&=,^=,|=,%=流程控制語句03PARTif-else語句if語句是最常見的程序流程控制語句,它可以配合else或者elseif來無限擴(kuò)展選擇執(zhí)行的分支。if語句的使用形式有如下四種,但無論采用哪種方式,無論產(chǎn)生多少分支,最終,也只有一個分支能夠得以運(yùn)行。(1)一個分支:if(條件){語句序列;}。(2)兩個分支:if(條件){語句序列;}else{語句序列;}。(3)多分支:if(條件){語句序列;}elseif{語句序列;}…else{語句序列;}。(4)嵌套:if(條件){if語句序列;}else{if語句序列;}。其執(zhí)行機(jī)制是:先對各個條件進(jìn)行判斷,然后執(zhí)行成立條件的分支所對應(yīng)的語句序列,若沒有條件成立,則直接執(zhí)行整個if塊后的語句。流程控制語句流程控制語句若根據(jù)要求輸入“男”,程序自然能夠成功運(yùn)行,此時輸出為“先生,你好!”。若用戶輸入除“男”外的其他內(nèi)容,則上面的程序都將把客戶視為女性,輸出結(jié)果自然不符合要求,流程控制語句修改程序如下switch語句switch語句與if語句類似,也是在眾多分支中選擇一個匹配的分支來執(zhí)行其執(zhí)行機(jī)制是:根據(jù)表達(dá)式的值,在各個case中尋找相匹配的,若找到,則執(zhí)行相應(yīng)的語句序列直到遇到break,若沒有,則在default分支存在的情況下,執(zhí)行default分支。使用switch時需要注意如下事項(xiàng)。(1)switch表達(dá)式的值只能是整型(byte、short、int、char等)、字符串或枚舉(枚舉可以視為整型的特例)。(2)單個case下不能缺少break,但幾個case共用一段語句序列時,可以省略break。(3)switch語句同if語句一樣,可以嵌套。流程控制語句流程控制語句實(shí)例程序流程控制語句case對應(yīng)的語句塊相同時,可以省略break。例如,上面根據(jù)用戶輸入的性別的示例,若用戶輸入“男”或“女”,程序輸出“您好”,否則輸出“錯誤信息”。兩種合法性別對應(yīng)的case塊,共用一個輸出for語句for語句是最常使用的循環(huán)語句,特點(diǎn)是使用方式的靈活for(初始化語句;條件測試語句;迭代語句){

循環(huán)語句序列//循環(huán)體,該處的語句序列會被反復(fù)執(zhí)行至循環(huán)結(jié)束}流程控制語句初始化語句多用于給循環(huán)變量賦初值(循環(huán)變量多指計(jì)數(shù)器);條件測試語句多用于判斷循環(huán)是否需要繼續(xù)執(zhí)行,為true時繼續(xù),否則不再繼續(xù);迭代語句多用于實(shí)現(xiàn)對循環(huán)變量值的更改,該更改使得循環(huán)變量的值向使循環(huán)結(jié)束的趨勢變化。流程控制語句其執(zhí)行機(jī)制是:首先,執(zhí)行初始化語句;其次,執(zhí)行條件測試語句,當(dāng)條件測試語句返回true時,接著執(zhí)行循環(huán)語句序列;最后,執(zhí)行迭代語句,這是第一次循環(huán)的過程,除第一次循環(huán),其他時刻不再執(zhí)行初始化語句。從第二次循環(huán)開始,每次首先執(zhí)行條件測試語句,成立則執(zhí)行循環(huán)語句序列,再執(zhí)行迭代語句,然后又進(jìn)入下一輪循環(huán)的條件測試語句判斷,直至該語句不成立時,整個循環(huán)方才結(jié)束。迭代語句除了使用自增表達(dá)式外,也可用其他方式流程控制語句for循環(huán)的變體很多這兩個示例,第一個取消了迭代語句部分,第二個將初始化語句部分和迭代部分都取消了,程序仍可以正常運(yùn)行,但如果將3個部分都取消,只留下循環(huán)語句序列部分,則程序會構(gòu)成一個死循環(huán)流程控制語句當(dāng)循環(huán)變量僅僅用于循環(huán)計(jì)數(shù)時,不可使用下面的寫法最好方式是將循環(huán)變量i的作用域限制在for循環(huán)的結(jié)構(gòu)內(nèi)部for語句的一般形式,也可以改寫為while語句。其對應(yīng)的初始化語句while語句while語句一般形式while(條件表達(dá)式){

循環(huán)語句序列;}其執(zhí)行機(jī)制是:首先執(zhí)行條件表達(dá)式,若為真則執(zhí)行循環(huán)語句序列,接著再執(zhí)行條件表達(dá)式,直到條件表達(dá)式不成立退出循環(huán)為止,繼而執(zhí)行循環(huán)體之外的語句。當(dāng)條件表達(dá)式第一次就不成立時,此時循環(huán)語句序列不會獲得任何執(zhí)行機(jī)會。流程控制語句初始化語句多用于給循環(huán)變量賦初值(循環(huán)變量多指計(jì)數(shù)器);條件測試語句多用于判斷循環(huán)是否需要繼續(xù)執(zhí)行,為true時繼續(xù),否則不再繼續(xù);迭代語句多用于實(shí)現(xiàn)對循環(huán)變量值的更改,該更改使得循環(huán)變量的值向使循環(huán)結(jié)束的趨勢變化。流程控制語句用100以內(nèi)的奇數(shù)等差數(shù)列為例進(jìn)行說明do-while語句do-while語句與while語句基本一樣do{

循環(huán)語句序列;}while(條件表達(dá)式)其執(zhí)行機(jī)制是:首先執(zhí)行循環(huán)語句序列,然后執(zhí)行條件表達(dá)式,若為真則接著執(zhí)行循環(huán)語句序列,接著再執(zhí)行條件表達(dá)式,直到條件表達(dá)式不成立退出循環(huán)而執(zhí)行循環(huán)之外的語句。從其執(zhí)行機(jī)制可以看出,do-while與while的區(qū)別在于,do-while語句中的循環(huán)語句序列至少會獲得一次執(zhí)行機(jī)會。流程控制語句流程控制語句用100以內(nèi)的奇數(shù)等差數(shù)列為例進(jìn)行說明

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論