運(yùn)算符與流程控制(共52張PPT)精選_第1頁
運(yùn)算符與流程控制(共52張PPT)精選_第2頁
運(yùn)算符與流程控制(共52張PPT)精選_第3頁
運(yùn)算符與流程控制(共52張PPT)精選_第4頁
運(yùn)算符與流程控制(共52張PPT)精選_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第四章運(yùn)算符與流程(liúchéng)控制第一頁,共52頁。4.1運(yùn)算符運(yùn)算符是一種符號,用來指定(zhǐdìng)要在表達(dá)式中執(zhí)行的操作。C++中常用的運(yùn)算符有:算術(shù)運(yùn)算符賦值運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符條件運(yùn)算符第二頁,共52頁。4.1運(yùn)算符學(xué)習(xí)運(yùn)算符應(yīng)注意:運(yùn)算符功能與運(yùn)算量關(guān)系(guānxì)要求運(yùn)算量個數(shù)(單目,雙目,三目)要求運(yùn)算量類型運(yùn)算符優(yōu)先級別結(jié)合方向結(jié)果的類型第三頁,共52頁。4.1.1算術(shù)(suànshù)運(yùn)算符算術(shù)運(yùn)算符基本算術(shù)運(yùn)算符:+-*/%功能:取模運(yùn)算符%用于計算(jìsuàn)兩整數(shù)相除后得到的余數(shù)結(jié)合方向:從左向右優(yōu)先級:*/%----->+-(13)(12) 說明:兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)例5/2=-5/2.0=例5%2=-5%2=1%10=

5%1=5.5%2例5/2=2

-5/2.0=例5%2=1

-5%2=-11%10=

1

5%1=

05.5%2()第四頁,共52頁。4.1.1算術(shù)(suànshù)運(yùn)算符算術(shù)表達(dá)式由以上各種算術(shù)運(yùn)算符和常量或變量構(gòu)成的式子叫做算術(shù)表達(dá)式。算術(shù)表達(dá)式的操作數(shù)主要(zhǔyào)是數(shù)值類型的數(shù)據(jù)和字符類型的數(shù)據(jù)第五頁,共52頁。4.1.1算術(shù)(suànshù)運(yùn)算符算術(shù)運(yùn)算時的類型轉(zhuǎn)換當(dāng)運(yùn)算符兩邊的操作數(shù)不是同一(tóngyī)種數(shù)據(jù)類型時,必須將它們先轉(zhuǎn)換成同一(tóngyī)類型的數(shù)據(jù)再進(jìn)行運(yùn)算。數(shù)據(jù)類型的轉(zhuǎn)換有兩種方式:隱式類型轉(zhuǎn)換顯示類型轉(zhuǎn)換第六頁,共52頁。4.1.1算術(shù)(suànshù)運(yùn)算符隱式類型轉(zhuǎn)換什么情況下發(fā)生運(yùn)算轉(zhuǎn)換------不同類型數(shù)據(jù)(shùjù)混合運(yùn)算時賦值轉(zhuǎn)換------把一個值賦給與其類型不同的變量時輸出轉(zhuǎn)換------輸出時轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換------實參與形參類型不一致時轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)(shùjù)運(yùn)算時先自動轉(zhuǎn)換成同一類型第七頁,共52頁。說明:必定的轉(zhuǎn)換運(yùn)算對象類型不同時轉(zhuǎn)換例charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+‘a(chǎn)’+i*f-d/l例inti;floatf;doubled;longl;doublefloatlongunsignedintchar,short低高unsignedlong第八頁,共52頁。4.1.1算術(shù)(suànshù)運(yùn)算符顯示(xiǎnshì)類型轉(zhuǎn)換(類型名)表達(dá)式類型名(表達(dá)式)例(int)x+y(double)(3/2)(int)3.6說明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變第九頁,共52頁。例題(lìtí)4-1將double類型的數(shù)據(jù)和int類型的數(shù)據(jù)進(jìn)行顯示轉(zhuǎn)換。#include<iostream.h>voidmain(){doublea=10.6;intb=5;b=b+int(a);//將double類型的數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為int型的數(shù)據(jù)cout<<b<<endl;charc='A';c=c+(char)b;//將int類型的數(shù)據(jù)轉(zhuǎn)換為char類型的數(shù)據(jù)。cout<<c<<endl;}4.1.1算術(shù)(suànshù)運(yùn)算符第十頁,共52頁。簡單賦值運(yùn)算符符號(fúhào):=格式:變量標(biāo)識符=表達(dá)式作用:將右側(cè)的表達(dá)式求出結(jié)果,賦給其左側(cè)的變量復(fù)合(fùhé)賦值運(yùn)算符種類:+=-=*=/=%=《=》=&=^=|=含義:exp1op=exp2exp1=exp1opexp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例a=3;d=func();c=d+2;4.1.2賦值運(yùn)算符第十一頁,共52頁。說明:結(jié)合方向:自右向左優(yōu)先級:2左側(cè)必須(bìxū)是變量,不能是常量或表達(dá)式賦值表達(dá)式的值與變量值相等(xiāngděng),且可嵌套賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達(dá)式值自動(zìdòng)轉(zhuǎn)換成其左邊變量的類型例3=x-2*y;a+b=3;例

floatf;inti;i=10;f=i;則

例inti;i=2.56;//結(jié)果i=2;例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達(dá)式值為5,a,b,c值為5//b=5;a=5//表達(dá)式值11,c=6,a=11//表達(dá)式值10,a=10,b=4,c=6//表達(dá)式值5,a=5,b=10,c=24.1.2賦值運(yùn)算符第十二頁,共52頁。例j=3;k=++j;j=3;k=j++;j=3;cout<<++j<<endl;j=3;cout<<j++<<endl;a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4自增、自減運(yùn)算符++--作用:使變量值加1或減1種類(zhǒnglèi):前綴++i,--i(先執(zhí)行i+1或i-1,再使用i值)后綴i++,i--(先使用i值,再執(zhí)行i+1或i-1)4.1.3自增、自減運(yùn)算符第十三頁,共52頁。說明:++--不能用于常量(chángliàng)和表達(dá)式,如5++,(a+b)++++--結(jié)合方向:自右向左優(yōu)先級:15例-i++-(i++)i=3;cout<<-i++<<endl;//-3

例-i++i=3;cout<<-i++<<endl;自增、自減運(yùn)算符++--作用:使變量值加1或減1種類(zhǒnglèi):前綴++i,--i(先執(zhí)行i+1或i-1,再使用i值)后綴i++,i--(先使用i值,再執(zhí)行i+1或i-1)4.1.3自增、自減運(yùn)算符第十四頁,共52頁。種類:<<===>=>!=結(jié)合方向(fāngxiàng):自左向右優(yōu)先級別:<<=>>===!=高(10)低(9)例c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)關(guān)系(guānxì)表達(dá)式的值:是邏輯值“真”或“假”,用1和0表示例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c//表達(dá)式值1//表達(dá)式值1//表達(dá)式值0//d=1//f=04.1.4關(guān)系(guānxì)運(yùn)算符第十五頁,共52頁。例注意(zhùyì)區(qū)分“=”與“==”inta=0,b=1;if(a=b)cout<<“aequaltob“;elsecout<<“anotequaltob“;inta=0,b=1;if(a==b)cout<<“aequaltob“;else

cout<<“anotequaltob“;4.1.4關(guān)系(guānxì)運(yùn)算符第十六頁,共52頁。4關(guān)系(guānxì)運(yùn)算符第四十四頁,共52頁。表達(dá)式1,表達(dá)式2,表達(dá)式3,…,表達(dá)式na>b&&x>y第三十二頁,共52頁。1%10=1第二十八頁,共52頁。第二十九頁,共52頁。if(a=b)4跳轉(zhuǎn)語句(yǔjù)語句|{語句塊};elseif(表達(dá)式n-1)2switch語句(yǔjù)1算術(shù)(suànshù)運(yùn)算符種類(zhǒnglèi):!&&||種類(zhǒnglèi):!&&||邏輯運(yùn)算真值表ab!a!ba&&ba||b真假真假假假真真真假假假假假真真假假真真真假真真4.1.5邏輯(luójí)運(yùn)算符第十七頁,共52頁。!(15)&&(5)||(4)高低例a<=x&&x<=b

a>b&&x>ya==b||x==y!a||a>b優(yōu)先級:結(jié)合(jiéhé)方向:!:從右向左&&:從左向右||:從左向右//(a<=x)&&(x<=b)//(a>b)&&(x>y)//(a==b)||(x==y)//(!a)||(a>b)4.1.5邏輯(luójí)運(yùn)算符例a=4;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0‘c’&&‘d’值為1值為0值為1值為1值為1值為1//(5>3)&&2||(8<(4-(!0)))值為1第十八頁,共52頁。邏輯運(yùn)算符的短路特性:邏輯表達(dá)式求解時,并非所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(yīɡè)邏輯運(yùn)算符才能求出表達(dá)式的解時,才執(zhí)行該運(yùn)算符例a&&b&&c//只在a為真時,才判別(pànbié)b的值;只在a、b都為真時,才判別(pànbié)c的值例a||b||c//只在a為假時,才判別(pànbié)b的值;只在a、b都為假時,才判別(pànbié)c的值例a=1;b=2;c=3;d=4;m=1;n=1(初始值);(m=a>b)&&(n=c>d)//結(jié)果(jiēguǒ)m=0,n=14.1.5邏輯運(yùn)算符第十九頁,共52頁。條件運(yùn)算符是唯一(wéiyī)的一個三目運(yùn)算符,格式:expr1?expr2:expr3首先計算expr1的值,如果是true則返回的結(jié)果是表達(dá)式expr2;否則返回的結(jié)果是表達(dá)式expr34.1.6條件(tiáojiàn)運(yùn)算符第二十頁,共52頁。條件運(yùn)算符一般(yībān)形式:expr1?expr2:expr3執(zhí)行過程expr1取expr2值取expr3值非0=0例(a==b)?’Y’:’N’(x%2==1)?1:0(x>=0)?x:-x(c>=‘a(chǎn)’&&c<=‘z’)?c-’a’+’A’:c4.1.6條件(tiáojiàn)運(yùn)算符第二十一頁,共52頁。4.1.7sizeof運(yùn)算符

sizeof運(yùn)算(yùnsuàn)符用于計算某種數(shù)據(jù)類型的運(yùn)算(yùnsuàn)對象在計算機(jī)中所占用的存儲空間的字節(jié)數(shù)。sizeof(數(shù)據(jù)類型)或者sizeof(表達(dá)式)第二十二頁,共52頁。4.1.8逗號(dòuhào)運(yùn)算符

逗號運(yùn)算符是“,”,用它可以將多個表達(dá)式連接起來,格式如下:表達(dá)式1,表達(dá)式2,表達(dá)式3,…,表達(dá)式n它的運(yùn)算過程是:按照從左到右的順序依次求出各表達(dá)式的值,并把最后一個表達(dá)式的值作為整個(zhěnggè)表達(dá)式的值。例題:(a=4,a+5,y=8)+5第二十三頁,共52頁。4.2分支(fēnzhī)結(jié)構(gòu)有時候出于某種特殊(tèshū)目的,命令的執(zhí)行是有條件的、選擇的被執(zhí)行,不是在任何情況下都要執(zhí)行這些命令,我們把這種程序結(jié)構(gòu)叫做分支結(jié)構(gòu)或選擇結(jié)構(gòu)。第二十四頁,共52頁。4.2.1if語句(yǔjù)

用if語句實現(xiàn)單個分支選擇執(zhí)行結(jié)構(gòu)(jiégòu)。if(表達(dá)式) 語句|{語句塊};執(zhí)行邏輯如下圖所示:第二十五頁,共52頁。用if語句(yǔjù)實現(xiàn)雙分支選擇執(zhí)行結(jié)構(gòu)if(表達(dá)式) 語句(yǔjù)1|{語句(yǔjù)塊1}else 語句(yǔjù)2|{語句(yǔjù)塊2}執(zhí)行邏輯如右圖所示:4.2.1if語句(yǔjù)

第二十六頁,共52頁。用if語句(yǔjù)實現(xiàn)多分支選擇執(zhí)行結(jié)構(gòu)if(表達(dá)式1) 語句(yǔjù)1|{語句(yǔjù)塊1}elseif(表達(dá)式2) 語句(yǔjù)2|{語句(yǔjù)塊2}……elseif(表達(dá)式n-1) 語句(yǔjù)n-1|{語句(yǔjù)塊n-1}else 語句(yǔjù)n|{語句(yǔjù)塊n}4.2.1if語句(yǔjù)

第二十七頁,共52頁。if~else配對原則:缺省{}時,else總是和它上面(shàngmiɑn)離它最近的未配對的if配對if(……)if(……)if(……)else…...else…...else…...if…else…語句(yǔjù)的嵌套4.2.1if語句(yǔjù)

第二十八頁,共52頁。例:if(a==b)if(b==c)printf(“a==b==c”);elseprintf(“a!=b”);修改(xiūgǎi):if(a==b){if(b==c)printf(“a==b==c”);}elseprintf(“a!=b”);實現(xiàn)if~else正確(zhèngquè)配對方法:加{}4.2.1if語句(yǔjù)

第二十九頁,共52頁。4.2.2switch語句(yǔjù)

switch語句也可以實現(xiàn)程序的分支結(jié)構(gòu),當(dāng)判斷條件比較多時,選擇switch語句更合適。因為它的結(jié)構(gòu)比較清晰(qīngxī),不容易出錯。switch語句的格式如下第三十頁,共52頁。switch語句(yǔjù)的語法如下:switch(表達(dá)式){case常量表達(dá)式1:語句(yǔjù)序列1;break;case常量表達(dá)式2:語句(yǔjù)序列2;break;……case常量表達(dá)式n:語句(yǔjù)序列n;break;default:語句(yǔjù)序列n+1;}4.2.2switch語句(yǔjù)

switch表達(dá)式語句序列1語句序列2語句序列n語句n+1…...常量表達(dá)式1常量表達(dá)式2常量表達(dá)式ndefaultcase第三十一頁,共52頁。當(dāng)執(zhí)行switch語句時,條件表達(dá)式的值與常量表達(dá)式的值比較,如果哪一個case后面的常量表達(dá)式的值與條件表達(dá)式的值相等,那么程序?qū)?zhí)行這個case后面緊跟的語句,直到遇到break才會跳出switch語句。如果沒有一個常量表達(dá)式的值與條件表達(dá)式的值相等,那么程序則執(zhí)行default后面緊跟的語句。注意switch語句中,程序是以匹配的case語句作為入口,相對應(yīng)的break語句作為出口的。如果漏掉了其中一個break語句,那么程序?qū)恢?yīzhí)執(zhí)行,直到遇到下一個break語句或執(zhí)行完default語句。多個case可共用一組執(zhí)行語句例題:4.2.2switch語句(yǔjù)

第三十二頁,共52頁。4.3循環(huán)(xúnhuán)結(jié)構(gòu)循環(huán)就是在某個條件保持為真時重復(fù)地執(zhí)行一組語句,直到條件不再符合(fúhé)。在C++中,又可以分為while循環(huán)語句、do…while循環(huán)語句、for循環(huán)語句三種。第三十三頁,共52頁。4.3.1while循環(huán)(xúnhuán)

while循環(huán)語句while語句的語法(yǔfǎ)如下:while(表達(dá)式){語句組;}第三十四頁,共52頁。例用while循環(huán)求#include<iostream.h>voidmain(){inti,sum=0;i=1;while(i<=100){sum+=i;i++;}cout<<“sum=“<<sum<<endl;}循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體第三十五頁,共52頁。do…while循環(huán)(xúnhuán)語句do{語句組;}while(表達(dá)式);4.3.2do-while循環(huán)(xúnhuán)第三十六頁,共52頁。do…while循環(huán)與while循環(huán)的區(qū)別(qūbié)是:while循環(huán)先判斷后執(zhí)行,do…while循環(huán)先執(zhí)行后判斷do…while循環(huán)體至少要執(zhí)行一次,然后才判斷表達(dá)式的值是否為真。注意while語句后帶的分號。4.3.2do-while循環(huán)(xúnhuán)第三十七頁,共52頁。for(<表達(dá)式1>;<表達(dá)式2>;<表達(dá)式3>){<語句(yǔjù)>;}表2循環(huán)體假(0)真(非0)for表達(dá)式1表34.3.3for循環(huán)(xúnhuán)第三十八頁,共52頁。例:求數(shù)字(shùzì)1到10的平方的和(12+22+…+102)。#include<iostream.h>voidmain(){ for(inti=1,sum=0;i<=10;i++) { sum=sum+i*i; } cout<<"Thesumis:"<<sum;}第三十九頁,共52頁。4.3.4循環(huán)(xúnhuán)語句的嵌套

一個循環(huán)語句中包含一個或多個(duōɡè)其他的循環(huán)語句,這就叫循環(huán)語句的嵌套。用循環(huán)語句的嵌套解決單重循環(huán)不能完成的問題。第四十頁,共52頁。例題4-16用雙重循環(huán)輸出(shūchū)一個單位矩陣。從鍵盤上任意輸入一個整數(shù)n,程序?qū)⑤敵?shūchū)一個以n值為行、列的單位矩陣。練習(xí):打印乘法口訣表4.3.4循環(huán)(xúnhuán)語句的嵌套

第四十一頁,共52頁。

break語句格式:break;功能:用在循環(huán)語句和switch語句中,終止并跳出(tiàochū)循環(huán)體或開關(guān)體說明:break只能終止并跳出(tiàochū)最近一層的結(jié)構(gòu)break不能用于循環(huán)語句和switch語句之外的任何其它語句之中例題:從鍵盤輸入任意個整數(shù),求其中正數(shù)的和。(以0作為輸入結(jié)束的標(biāo)志)4.4跳轉(zhuǎn)語句(yǔjù)第四十二頁,共52頁。continue語句格式:continue;功能:結(jié)束本次循環(huán),跳過循環(huán)體中尚未執(zhí)行(zhíxíng)的語句,進(jìn)行下一次循環(huán)僅用于循環(huán)語句中4.4跳轉(zhuǎn)語句(yǔjù)第四十三頁,共52頁。4.5變量(biànliàng)的作用域

一個(yīɡè)變量能夠被訪問的區(qū)域叫做變量的作用域,本節(jié)將介紹三種不同類型的作用域:文件作用域局部作用域類作用域第四十四頁,共52頁。4.5.1文件(wénjiàn)作用域

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

最新文檔

評論

0/150

提交評論