五邑大學(xué)《程序設(shè)計(jì)原理》第3章_第1頁
五邑大學(xué)《程序設(shè)計(jì)原理》第3章_第2頁
五邑大學(xué)《程序設(shè)計(jì)原理》第3章_第3頁
五邑大學(xué)《程序設(shè)計(jì)原理》第3章_第4頁
五邑大學(xué)《程序設(shè)計(jì)原理》第3章_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章

程序設(shè)計(jì)初步

程序結(jié)構(gòu)是指程序中語句執(zhí)行的流程結(jié)構(gòu)。程序的3大結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)語言中的基本控制結(jié)構(gòu)當(dāng)于自然語言中的基本句型,是構(gòu)造程序的基礎(chǔ)。3.2

C++程序和語句

C++程序中最小的獨(dú)立單位是語句。它相當(dāng)于一篇文章中的一個句子。句子是用句號結(jié)束的。語句一般是用分號結(jié)束的(復(fù)合語句是以右花括號結(jié)束的)。C++語句可以分為以下4種:聲明語句執(zhí)行語句空語句復(fù)合語句聲明語句int

a,b;在C++中,對變量(以及其他對象)的定義被認(rèn)為是一條語句。執(zhí)行語句通知計(jì)算機(jī)完成一定的操作。執(zhí)行語句包括:(1)控制語句,完成一定的控制功能。C++有9種控制語句:①

if(

)~else~②

for(

)~③

while(

)~④

do~while(

)⑤

continue⑥

break⑦

switch⑧

goto⑨

return(條件語句)(循環(huán)語句)(循環(huán)語句)(循環(huán)語句)(結(jié)束本次循環(huán)語句)(中止執(zhí)行switch或循環(huán)語句)(多分支選擇語句)(轉(zhuǎn)向語句)(從函數(shù)返回語句)舉例:if(x>0)cout<<x;(2)函數(shù)和流對象調(diào)用語句。函數(shù)調(diào)用語句由一次函數(shù)調(diào)用加一個分號構(gòu)成一個語句,例如sort(x,y,z);數(shù)cout<<x<<endl;//假設(shè)已定義了sort函數(shù),它有3個參//流對象調(diào)用語句(3)表達(dá)式語句。由一個表達(dá)式加一個分號構(gòu)成一個語句。最典型的是:由賦值表達(dá)式構(gòu)成一個賦值語句。i=i+1i=i+1;//是一個賦值表達(dá)式//是一個賦值語句任何一個表達(dá)式的最后加一個分號都可以成為一個語句。一個語句必須在最后出現(xiàn)分號。C++程序中大多數(shù)語句是表達(dá)式語句(包括函數(shù)調(diào)用語句)??照Z句下面是一個空語句:;即只有一個分號的語句,它什么也不做。有時用來做被轉(zhuǎn)向點(diǎn),或循環(huán)語句中的循環(huán)體。復(fù)合語句可以用{}把一些語句括起來成為復(fù)合語句。如下面是一個復(fù)合語句。{

z=x+y;if(z>100)

z=z-100;cout<<z;}復(fù)合語句中每個語句中最后的分號不能省略。3.5編寫順序結(jié)構(gòu)的程序順序結(jié)構(gòu)

在一個程序中,各執(zhí)行語句是從上到下順序執(zhí)行的。即先執(zhí)行第1個語句,再執(zhí)行第2個語句,再執(zhí)行第3個語句……直到最后一個語句。

順序結(jié)構(gòu)的程序最簡單,也最容易理解。順序結(jié)構(gòu)沒有專門的控制語句,執(zhí)行時不會發(fā)生流程的控制轉(zhuǎn)移。例3.5求一元二次方程式ax2+bx+c=0的根。a,b,c的值在運(yùn)行時由鍵盤輸入,它們的值滿足b2-4ac≥0。#include

<iostream>#include

<cmath>using

namespace

std;int

main(

){float

a,b,c,x1,x2;cin>>a>>b>>c;//程序要用到數(shù)學(xué)函數(shù)sqrtx1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);cout<<″x1=″<<x1<<endl;cout<<″x2=″<<x2<<endl;return

0;}假設(shè)輸入:1-4

3運(yùn)行結(jié)果:X1=1X2=3

以上程序的問題:由于是求一元二次方程,如果用戶執(zhí)行程序時,輸入的a,b,c不滿足b2-4ac>=0,程序的執(zhí)行就會出現(xiàn)錯誤。所以,在

編寫程序時,程序員應(yīng)該要考慮到對無解情況的處理。程序應(yīng)該改為:#include

<iostream>#include

<cmath>using

namespace

std;int

main(

){float

a,b,c,x1,x2;cin>>a>>b>>c;if

(b*b-4*a*c>=0){

x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);cout<<″x1=″<<x1<<endl;cout<<″x2=″<<x2<<endl;}elsecout<<″輸入的方程系數(shù)會導(dǎo)致方程無解!″<<endl;return

0;}if…else…這是一種選擇結(jié)構(gòu)。實(shí)際中,往往要求根據(jù)某個指定的條件是否滿足來決定執(zhí)行的內(nèi)容。

無論是選擇結(jié)構(gòu)中的條件判斷式,還是循環(huán)結(jié)構(gòu)中的條件判斷式,一般都會采用“關(guān)系表達(dá)式”或者“邏輯表達(dá)式”。3.6.2邏輯常量和邏輯變量

無論是關(guān)系表達(dá)式,還是邏輯表達(dá)式,它們的運(yùn)算結(jié)果都是邏輯值。

C++支持邏輯型數(shù)據(jù)(也稱為布爾型數(shù)據(jù))。邏輯型數(shù)據(jù)的取值只有兩個:true

false邏輯型常量:true

false邏輯型變量定義時用bool來表示類型。bool

flag;flag=false;引用邏輯型數(shù)據(jù)的目的:可以使程序直觀易懂。#include

<iostream>using

namespace

std;int

main(

){float

a,b,c,x1,x2;bool

flag;cin>>a>>b>>c;if

(b*b-4*a*c>=0)

flag=true;else

flag=false;if(flag==true)cout<<“方程有實(shí)根!”else

cout<<“方程無實(shí)根!”return

0;}邏輯型數(shù)據(jù)的存儲

邏輯型數(shù)據(jù)(true/false)在內(nèi)存中存儲時,并不是存的英文單詞,而是1或0。(true對應(yīng)1,false對應(yīng)0)。邏輯型變量在內(nèi)存中占1個字節(jié)。邏輯型數(shù)據(jù)的輸出,輸出為1或0bool

flag=true;cout<<flag;輸出結(jié)果:1邏輯型數(shù)據(jù)可以參與算術(shù)運(yùn)算。int

a=0;bool

flag=true;a=a+flag+true;cout<<a;輸出結(jié)果:2邏輯型變量在賦值時,也可以賦為一個整數(shù)。bool

flag;flag=0;bool

flag;flag=1;flag為falseflag為truebool

flag;flag=23;flag為true注意:如果將一個非0值賦給邏輯型變量,則按“真”處理。3.6.1關(guān)系運(yùn)算和關(guān)系表達(dá)式

前面例子中的b*b-4*a*c>=0是一個比較式,也稱關(guān)系表達(dá)式。C++的關(guān)系運(yùn)算符①<

(小于)②<=(小于或等于)③>

(大于)④>=(大于或等于)⑤==(等于)⑥!=(不等于)優(yōu)先級相同(高)優(yōu)先級相同(低)關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符。關(guān)系運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符。

關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩個表達(dá)式連接起來的式子。關(guān)系表達(dá)式的結(jié)果是一個邏輯值。舉例,有以下關(guān)系表達(dá)式:(對于①-④,a

b

c的值依次是3

2

1)a>ba+b>b+c(a==3)>(b==5)

true(a>b)>(b>c)‘a(chǎn)’<‘b’truetruetruefalse3.6.3邏輯運(yùn)算和邏輯表達(dá)式

問題:如果在一個程序中,用變量x接收用戶鍵盤輸入,現(xiàn)在要判斷輸入的值是不是百分制的分?jǐn)?shù),該怎么寫表達(dá)式。#include

<iostream>using

namespace

std;int

main(

){float

x;cin>>x;0<=X<=100錯誤x>=0

&&

x<=100正確if(

)cout<<“輸入分?jǐn)?shù)有效!”else

cout<<“輸入分?jǐn)?shù)無效!”return

0;}注意:很多情況下用一個關(guān)系表達(dá)式還不能正確表示所指定的條件,可能還需要用到邏輯運(yùn)算符。C++提供3種邏輯運(yùn)算符:a

&&

ba

||

b!a邏輯與(相當(dāng)于其他語言中的AND)邏輯或(相當(dāng)于其他語言中的OR)邏輯非(相當(dāng)于其他語言中的NOT)&&和||都是雙目運(yùn)算符,要求在其兩側(cè)各有一個運(yùn)算量。!是單目運(yùn)算符,只要求其右側(cè)有一個運(yùn)算量。運(yùn)算規(guī)則:對于&&運(yùn)算,只有運(yùn)算量都為真,結(jié)果才為真。

對于||運(yùn)算,只要有一個運(yùn)算量為真,結(jié)果就為真。當(dāng)兩個運(yùn)算量都為假時,結(jié)果才為假。對于!運(yùn)算,是對原運(yùn)算量取反。邏輯表達(dá)式的結(jié)果是邏輯值(true或false)

如果一個邏輯表達(dá)式中包含多個邏輯運(yùn)算符,就要注意運(yùn)算符的優(yōu)先順序:!(非)→&&(與)→||(或)與其他運(yùn)算符之間的優(yōu)先關(guān)系低高!算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&和||賦值運(yùn)算符a>b

&&

x>y

等價于

(a>b)

&&

(x>y)a==b

||

x==y

等價于

(a==b)

||

(x==y)!a

||

a>b等價于(!a)||

(a>b)

可以用邏輯表達(dá)式表達(dá)復(fù)雜的條件。舉例:要判別某一年

(year)是否為閏年。閏年的條件是符合下面兩者之一:①能

4整除,但不能被100整除。②能被100整除,又能被400整除如2004、2000年是閏年,2005、2100年不是閏年。代表year為閏年的邏輯表達(dá)式:(year%4=

=0

&&

year%100!=0)||(year%100=

=0

&&

year%400=

=0)等價(year%4==0

&&

year%100!=0)||(year%400==0)代表year為非閏年的邏輯表達(dá)式:!((year%4==0

&&

year%100!=0)||(year%400==0))

非邏輯型數(shù)據(jù)可以作為運(yùn)算量出現(xiàn)在邏輯表達(dá)式中。如果該數(shù)據(jù)是0,則它代表false,如果該數(shù)據(jù)不是0,則它代表true。例如:若a=4,則!a的值為0。若a=4,b=5,則

a&&b的值為1;a-b||a+b的值為1!a||b的值為1‘c’&&’b’的值為13.7選擇結(jié)構(gòu)和if語句操操作作。。

選擇結(jié)構(gòu)的控制語句包括兩種:if語句和switch語句

if語句是用來判斷所給定的條件是否滿足,根據(jù)判斷的結(jié)果(真或假)決定執(zhí)行的if語句有3種形式:1.

if(表達(dá)式)語句規(guī)則:如果表達(dá)式的值為真(非0),則執(zhí)行語句,否則不執(zhí)行。if(x>y)

cout<<x<<endl;if(x>y)cout<<x<<endl;等價2.

if(表達(dá)式)

語句1

else

語句2規(guī)則:如果表達(dá)式的值為真(非0),則執(zhí)行語句1,否則執(zhí)行語句2。if(x>y)

cout<<x;else

cout<<y;等價if(x>y)cout<<x;elsecout<<y;3.if(表達(dá)式1)

語句1

else

if(表達(dá)式2)

語句2else

if(表達(dá)式3)

語句3…else

if(表達(dá)式m)

語句mif

(number>500)

cost=0.15;else

if(number>300)

cost=0.10;else

if(number>100)

cost=0.075;else

if(number>50)

cost=0.05;else

cost=0;

3種形式的if語句都是由一個入口進(jìn)來,經(jīng)過對“表達(dá)式”的判斷,分別執(zhí)行相應(yīng)的語句,最后歸到一個共同的出口。這種形式的程序

結(jié)構(gòu)稱為選擇結(jié)構(gòu)。

3種形式的if語句中在if后面都有一個用括號括起來的表達(dá)式,它是程序編寫者要求程序判斷的“條件”,一般是邏輯表達(dá)式或關(guān)系表達(dá)式。在if和else后面可以只含一個內(nèi)嵌的操作語句(如上例),也可以有多個操作語句,此時用花括號“{}”將幾個語句括起來成為一個復(fù)合語句。如:(求三角形面積,a

b

c為三邊)if(a+b>c

&&

b+c>a

&&

a+c>b){s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<area;}elsecout<<“這不是一個三角形”;if語句的嵌套在if語句中又包含一個或多個if語句,稱為if語句的嵌套。一般形式:if(

)if()語句1else語句2elseif()語句3else語句4注意:如果if與else的數(shù)目不一樣,為實(shí)現(xiàn)程序設(shè)計(jì)者的企圖,可以加花括號來確定配對關(guān)系。{}外的else不會與{}內(nèi)的if配對。該程序運(yùn)行后,不會在屏幕上顯示出任何結(jié)果。因?yàn)椋涸摮绦蛑校到y(tǒng)將else與第2個if配對。int

x=-10;if(x>=0

)if(

x<50)cout<<“x

is

ok\n”;elsecout<<“x

is

not

oki\int”t”x;=-10;if(x>=0

){

if(

x<50)cout<<“x

is

ok

\n”;}elsecout<<“x

is

not

ok\n”;程序運(yùn)行結(jié)果:x

is

not

ok該程序中,系統(tǒng)將else與第

1個if配對。3.9多分支選擇結(jié)構(gòu)和switch語句

switch語句用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。該語句是根據(jù)給定條件的結(jié)果值進(jìn)行判斷,然后執(zhí)行多個分支中的一個。格式:switch(表達(dá)式){case常量表達(dá)式1:語句1;break;case常量表達(dá)式2:語句2;break;...case常量表達(dá)式n:語句n;break;default:語句n+1;}

流程:首先計(jì)算switch后面括號中的表達(dá)式值;然后將其結(jié)果依次與各個case的常量表達(dá)式比較,當(dāng)一致時,就執(zhí)行該case下的子句。若結(jié)果值與所有的常量表達(dá)式都不同,則執(zhí)行default下的語句。當(dāng)執(zhí)行完某一分支語句后,遇到break語句,則退出

case結(jié)構(gòu),程序轉(zhuǎn)至switch結(jié)構(gòu)后的其他語句。

(1)switch后面括號內(nèi)的“表達(dá)式”,只能為整型、字符型、枚舉型(VC下)。

(2)case子句中語句1…語句n可以是單個語句,也可以是復(fù)合語句??梢圆槐赜脅}括起來。

(3)允許沒有default子句。此時如果找不到匹配的值,則什么都不執(zhí)行,退出case語句。

(4)每一個case表達(dá)式的值必須互不相同,否則就會出現(xiàn)互相矛盾的現(xiàn)象(對表達(dá)式的同一個值,有兩種或多種執(zhí)行方案)

(5)應(yīng)該在執(zhí)行一個case子句后,使流程跳出

switch結(jié)構(gòu),即終止switch語句的執(zhí)行??梢杂靡粋€break語句來達(dá)到此目的。

(6)在有break的情況下,各個case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。例如,可以先出現(xiàn)“default:…”,再出現(xiàn)“case′D′:…”然后是“case′A′:…”。switch(grade){case

′A′:

cout<<″85~100\n″;break;case

′B′:

cout<<″70~84\n″;break;case

′C′:

cout<<″60~69\n″;break;case

′D′:

cout<<″<60\n″;break;default :

cout<<″error\n″;break;}3.10編寫選擇結(jié)構(gòu)的程序例3.8編寫程序,判斷某一年是否為閏年。例3.9運(yùn)輸公司對用戶計(jì)算運(yùn)費(fèi)。路程(s)越遠(yuǎn),每公里運(yùn)費(fèi)越低。標(biāo)準(zhǔn)如下:s<250km沒有折扣250≤s<5002%折扣500≤s<10005%折扣1000≤s<20008%折扣2000≤s<300010%折扣3000≤s15%折扣設(shè)每公里每噸貨物的基本運(yùn)費(fèi)為p(price的縮寫),貨物重為w(wright的縮寫),距離為s,折扣為d(discount的縮寫),則總運(yùn)費(fèi)f(freight的縮寫)的計(jì)算公式為f

=

p

*

w

*

s

*

(1

-

d)允許多個case共用一組執(zhí)行語句。例如:switch(grade)…case

‘A’:case

‘B’:case

‘C’:cout<<“ok

\n”;當(dāng)grade的值為’A’,’B’,’C’時,都輸出”ok”switch(grade)…case

‘A’:case

‘B’:case‘C’:cout<<“ok\n”;switch(grade)…case

‘A,‘B’,‘C’:cout<<“ok

\n”;正確正確錯誤3.11循環(huán)結(jié)構(gòu)和循環(huán)語句問題:編寫程序,輸出1到100的整數(shù)。解決方法:int

main()■{正確的解決方法:用循環(huán)結(jié)構(gòu)cout<<1<<endl;cout<<2<<endl;cout<<3<<endl;■…■}該方法不現(xiàn)實(shí)?!鰗int

i;i=1;while

(i<=100)■{

cout<<i<<endl; i=i+1}return

0;■}

在一程序中,常常會重復(fù)使用某一段相同或類似的程序段。在編制程序時,不必重復(fù)編寫這個程序段,可用循環(huán)結(jié)構(gòu)來代替。被重復(fù)執(zhí)行的代碼段,通常稱之為循環(huán)體。問題:編寫程序,輸出1到100的整數(shù)。可采用的解決方法:int

main()C++提供三種循環(huán)語句:while語句、do-while語句和for語句。3.11.1用while語句構(gòu)成循環(huán)語句表達(dá)式是循環(huán)條件,可以是c++中任一合法表達(dá)式。語句是循環(huán)體,可以是單一語句,也可以是復(fù)合語句。若是復(fù)合語句,要加{}。while語句,也稱為“當(dāng)循環(huán)”。其格式如下:while

(表達(dá)式)

循環(huán)條件循環(huán)體while(表達(dá)式)語句

循環(huán)體計(jì)算表達(dá)式的值,若值為真(或非0)則執(zhí)行循環(huán)體。再次計(jì)算表達(dá)式的值,并重復(fù)以上過程。當(dāng)表達(dá)式的值為假(或?yàn)?),便不再執(zhí)行循環(huán)體,循環(huán)結(jié)束。循環(huán)條件例3.10求1+2+3+…+100#include

<iostream>using

namespace

std;int

main(

){int

i=1,sum=0;while

(i<=100){

sum=sum+i;i++;}cout<<″sum=″<<sum<<endl;}運(yùn)行結(jié)果為sum=5050注意事項(xiàng):循環(huán)體如果包含一個以上的語句,應(yīng)該用花括號括起來,以復(fù)合語句形式出現(xiàn)。如果不加花括號,則while語句的范圍只到while后面第一個分號處。通常在循環(huán)開始前,要對循環(huán)條件進(jìn)行初始化,如求1—N的和時,和的初值為0等。在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句。3.11.2用do-while語句構(gòu)成循環(huán)

“do-while語句”也稱為“直到循環(huán)”。其格式為:do語句do-while語句的特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。循環(huán)體while(表達(dá)式);循環(huán)條件先執(zhí)行一次即循環(huán)體,然后計(jì)算表達(dá)式,當(dāng)表達(dá)式的值為真(或非0)時,返回重新執(zhí)行循環(huán)體語句,如此反復(fù),直到表達(dá)式的值為假(或0)為止,此時循環(huán)結(jié)束。do語句

while(表達(dá)式);例3.11用do-while語句求1+2+3+…+100。#include

<iostream>using

namespace

std;int

main(

){int

i=1,sum=0;do{

sum=sum+i;

i++;}while

(i<=100);cout<<″sum=″<<sum<<endl;return

0;}while語句與do-while語句的區(qū)別是:do-while語句無論循環(huán)條件式的值是真是假,循環(huán)體都將至少執(zhí)行一次;而若循環(huán)條件式

的初值為假,則while語句循環(huán)體一次也不會執(zhí)行。3.11.3用for語句構(gòu)成循環(huán)for語句也稱為“for循環(huán)”。語句格式為:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體語句

表達(dá)式1、表達(dá)式2、表達(dá)式3都是C++中任一合法表達(dá)式。

循環(huán)體語句:可以是單一語句,也可以是復(fù)合語句,若是復(fù)合語句,要加{}。for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體語句它的執(zhí)行過程如下:先求解表達(dá)式1。再求解表達(dá)式2,若其值為真(值為非0),則執(zhí)行循環(huán)體,然后執(zhí)行下面第(3)步。若為假(值為0),則結(jié)束循環(huán),執(zhí)行for結(jié)構(gòu)后面的語句。(3)求解表達(dá)式3,然后轉(zhuǎn)回上面第(2)步驟繼續(xù)執(zhí)行。for語句最簡單的形式也是最容易理解的格式如下:

for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量的修改)循環(huán)體語句sum=0;for(i=1;i<=100;i++)sum=sum+i;求1+2+3+…+100的while語句可改為for語句。sum=0;i=1;while(i<=100){sum=sum+i;i++;}for語句的使用有許多技巧。說明:

(1)表達(dá)式1可以是設(shè)置循環(huán)變量初值的表達(dá)式,也可以是與循環(huán)變量無關(guān)的表達(dá)式。表達(dá)式1和表達(dá)式

3可以是一個簡單的表達(dá)式,也可以是逗號表達(dá)式。如:for(sum=0,i=1;i<=100;i++)

sum=sum+ifor(i=0,j=100;i<=j;i++,j--)

k=i+jC++中的for語句可以把循環(huán)體和一些與循環(huán)控制無關(guān)的操作也作為表達(dá)式1或表達(dá)式3出現(xiàn),這樣程序可以短小簡潔。但過分地利用這一特點(diǎn)會使for語句顯得雜亂,可讀性降低,建議不要把與循環(huán)控制無關(guān)的內(nèi)容放到for語句中。

(2)for語句中的3個表達(dá)式可部分或全部省略,但兩個分號不能省略。常見的是:將表達(dá)式1放在了for語句之前,或表達(dá)式3放在了循環(huán)體中,在for語句中就可相應(yīng)地省略表達(dá)式1或表達(dá)式3。如上述for語句:for(i=1;

i<=100

;

i++)

sum=sum+i;可寫成如下形式:i=1;;for

(

;i<=100;

){sum=sum+i;i++;}

//等效于while循環(huán)(3)3個表達(dá)式都可以省略,寫成:for

(;

;)

語句;

相當(dāng)于

while(1)

語句;

(4)表達(dá)式2一般是關(guān)系表達(dá)式(如i<=100)或邏輯表達(dá)式(如a<b

&&

x<y),但也可以是數(shù)值表達(dá)式或字符表達(dá)式,只要其值為非零,就執(zhí)行循環(huán)體。如下面兩個例子:①for(i=0;(c=getchar())!=‘\n’;i=i+c);②for(;(c=getchar))!=‘\n’;)

cout<<c;3.11.4幾種循環(huán)的比較3種循環(huán)都可以用來處理同一問題,一般情況下它們可以互相代替。while和do-while循環(huán),是在while后面指定循環(huán)條件的,在循環(huán)體中應(yīng)包含使循環(huán)趨于結(jié)束的語句(如i++或i=i+1等)。for循環(huán)可以在表達(dá)式3中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體中的操作全部放到表達(dá)式3中。因此for語句的功能更強(qiáng),凡用while循環(huán)能完成的,用

for循環(huán)都能實(shí)現(xiàn)。用while和do-while循環(huán)時,循環(huán)變量初始化的操作應(yīng)在while和do-while語句之前完成。而for語句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。3.12循環(huán)的嵌套

循環(huán)嵌套:當(dāng)循環(huán)語句中的循環(huán)體又是一個循環(huán)語句時,就構(gòu)成了“嵌套循環(huán)”。

for語句、while語句和do-while語句均可以構(gòu)成嵌套形式,這三種語句還可以互相嵌套。while(

){┆while(

){…}}do{┆do{…}while(

);}while(

);for(;;){┆for(;;){…}}for(;;

)dowhile(

){┆{┆{┆while(

)for(;;)do{…}{…}{…}while(

)

溫馨提示

  • 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

提交評論