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

付費下載

下載本文檔

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

文檔簡介

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

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

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

?熟練掌握程序各種語句

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論