版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章程序設(shè)計(jì)初步面向過(guò)程的程序設(shè)計(jì)和算法C++的輸入與輸出編寫(xiě)順序結(jié)構(gòu)的程序關(guān)系運(yùn)算與邏輯運(yùn)算分支結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)轉(zhuǎn)向語(yǔ)句3.1
面向過(guò)程的程序設(shè)計(jì)和算法在面向過(guò)程的程序設(shè)計(jì)中,程序設(shè)計(jì)者必須指定計(jì)算機(jī)執(zhí)行的具體步驟,程序設(shè)計(jì)者不僅要考慮程序要“做什么”,還要解決“怎么做”的問(wèn)題,根據(jù)程序要“做什么”的要求,寫(xiě)出一個(gè)個(gè)語(yǔ)句,安排好它們的執(zhí)行順序。怎樣設(shè)計(jì)這些步驟,怎樣保證它的正確性和具有較高的效率,這就是算法需要解決的問(wèn)題。3.1.1
算法的概念一個(gè)面向過(guò)程的程序應(yīng)包括以下兩方面內(nèi)容:(1)對(duì)數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)(data
structure)。(2)
對(duì)操作的描述。即操作步驟,也就是算法(algorithm)。對(duì)于面向過(guò)程的程序,可以用下面的公式表示:程序=算法+數(shù)據(jù)結(jié)構(gòu)作為程序設(shè)計(jì)
,必須認(rèn)真考慮和設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和操作步驟(即算法)。算法是處理問(wèn)題的一系列的步驟。算法必須具體地在執(zhí)行時(shí)每一步應(yīng)當(dāng)怎樣做。算法是求解特定問(wèn)題的一組有限的操作序列。計(jì)算機(jī)算法可分為兩大類別:數(shù)值算法和非數(shù)值算法。數(shù)值算法的目的是求數(shù)值解。非數(shù)值算法包括的面十分廣泛,最常見(jiàn)的是用于事務(wù)管理領(lǐng)域。目前,計(jì)算機(jī)在非數(shù)值方面的應(yīng)用遠(yuǎn)遠(yuǎn)超過(guò)了在數(shù)值方面的應(yīng)用。一個(gè)算法應(yīng)該具有以下特點(diǎn):①有窮性
一個(gè)算法應(yīng)包含有限的操作步驟,不能是無(wú)限的。②確定性
算法中的每一步驟都應(yīng)當(dāng)是確定的,而不應(yīng)當(dāng)是含糊的,
的。③有零個(gè)或多個(gè)輸入,一個(gè)或多個(gè)輸出。④有效性算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行。C++既支持面向過(guò)程的程序設(shè)計(jì),又支持面象的程序設(shè)計(jì)。無(wú)論面向過(guò)程的程序設(shè)計(jì)還是面
象的程序設(shè)計(jì),都離不開(kāi)算法設(shè)計(jì)。3.1.2
算法的表示1.自然語(yǔ)言用中文或英文等自然語(yǔ)言描述算法。但容易產(chǎn)生歧義性,在程序設(shè)計(jì)中一般不用自然語(yǔ)言表示算法。2.流程圖可以用傳統(tǒng)的流程圖或結(jié)構(gòu)化流程圖。用圖的形式表示算法,比較形象直觀,但修改算法時(shí)顯得不大方便。3.偽代碼(pseudo
code)偽代碼是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)來(lái)描述算法。如if
x
is
positive
thenprint
xelseprint
-x用偽代碼寫(xiě)算法并無(wú)固定的、嚴(yán)格的語(yǔ)
則,只需把意思表達(dá)清楚,并且書(shū)寫(xiě)的格式要寫(xiě)成清晰易讀的形式。它不用圖形符號(hào),因此書(shū)寫(xiě)方便、格式緊湊,容易修改,便于向計(jì)算機(jī)語(yǔ)言算法(即程序)過(guò)渡。4.用計(jì)算機(jī)語(yǔ)言表示算法用一種計(jì)算機(jī)語(yǔ)言去描述算法,這就是計(jì)算機(jī)程序。算法例:求1×2×3×4×5A:①先求1×2,得到結(jié)果2。②將步驟①得到的結(jié)果2再乘以3,得到結(jié)果6。③將6再乘以4,得24。④將24再乘以5,得120。這就是最后結(jié)果。這樣的算法雖然是正確的,但太繁瑣。B:設(shè)P為被乘數(shù),i為乘數(shù)。①1
→
P②2
→
i③P×i
→
P④i+1
→i⑤if
i≤5返回步驟③,否則算法結(jié)束,返回P的值開(kāi)始P=1i=2P=P
×ii=i+1i≤5
?false結(jié)束true3.2C++的輸入與輸出標(biāo)準(zhǔn)I/O流C/C++語(yǔ)言本身并不帶輸入和輸出(即I/O)
功能,而是提供了輸入輸出庫(kù),也稱為I/O庫(kù)。通過(guò)I/O庫(kù),
可以完成輸入和輸出的操作。大多數(shù)C程序使用一種稱為stdio(標(biāo)準(zhǔn)I/O)的I/O庫(kù),該庫(kù)也能夠在C++中使用。但是,
在C++程序中,一種稱為iostream(I/O
流庫(kù))的I/O庫(kù)用得
。在C++中,I/O使用了流的概念――字符(或字節(jié))流。每一個(gè)I/O
設(shè)備傳送和接收一系列的字節(jié),稱之為流。輸入操作可以看成是字節(jié)從一個(gè)設(shè)備流入內(nèi)存,而輸出操作可以看成是字節(jié)從內(nèi)存流出到一個(gè)設(shè)備?!?/p>
o”cin>>變量要使用C++標(biāo)準(zhǔn)的I/O流庫(kù)的功能,必須包括頭文件:#include<iostream>iostream文件提供基本的輸入輸出功能。通過(guò)包含iostream流庫(kù),內(nèi)存中就創(chuàng)建了一些用于處理輸入和輸出操作的對(duì)象。標(biāo)準(zhǔn)的輸出流(通常是屏幕)稱為cout,標(biāo)準(zhǔn)的輸入流(通常是鍵盤(pán))稱為cin。int
v1,v2;//
...cout<<
"The
sum
of
v1
+
v2
=
";cout
<<
v1
+
v2;cout
<<
'\n';“\n”表示換行符(newline),輸出換行符時(shí)它結(jié)束當(dāng)前的行并將隨后的輸出導(dǎo)向到下一行。除了顯式地使用換行符外 還可以使用預(yù)定義的iostream
符(manipulator
)endl。符在iostream
上執(zhí)行的是一個(gè)操作而不只是簡(jiǎn)一個(gè)換行單地提供數(shù)據(jù),例如endl在輸出流中符,然后刷新輸出緩沖區(qū)。一般不寫(xiě)cout
<<
'\n';而是寫(xiě)成cout
<<
endl;連續(xù)出現(xiàn)的輸出操作符可以連接在一起例如:cout
<<
"The
sum
of
v1+
v2
=
"
<<
v1
+v2
<<
endl;連續(xù)的輸出操作符按順序應(yīng)用在cout
上。為了便于閱讀連接在一起的輸出操作符可以分寫(xiě)在幾行下面的三行組成一條輸出語(yǔ)句cout
<<
"The
sum
of
"<<
v1
<<
"
+
"<<
v2
<<
"
=
"
<<
v1
+
v2
<<
endl;類似地輸入操作符>>用來(lái)從標(biāo)準(zhǔn)輸入讀入一個(gè)值,例如:double
a;//
...cout
<<
"Please
enter
a
number:
";cin
>>
a;連續(xù)出現(xiàn)的輸入操作符也可以連接起來(lái),例如:char
a,b;//
...cout
<<
"Pleaseentertwo
char:
";cin
>>a
>>b;cin為緩沖流。鍵盤(pán)輸入的數(shù)據(jù)保存在緩沖區(qū)中,當(dāng)要提取時(shí),是從緩沖區(qū)中取。如果一次輸入過(guò)多,就會(huì)留在那兒慢慢用。輸入的數(shù)據(jù)類型必須與要提取的數(shù)據(jù)類型一致,否則會(huì)出錯(cuò)。缺省情況下,輸入操作符丟棄任何中間空白(空格、制表符、換行符以及回車)。#include
<iostream>#include<cstdlib>usingnamespacestd;int
main(){char
a,b,c;cin>>a;cout<<"a:
"<<a<<endl;cin>>b;cout<<"b:
"<<b<<endl;cin>>c;cout<<"c:
"<<c<<endl;system("pause");//暫停return
0;}如果希望將鍵盤(pán)上輸入的所有字符(包括間隔字符)都作為輸入字符賦給字符變量,則必須使用函數(shù)cin.get()。#include
<iostream>using
namespace
std;int
main(){char
a,b,c;cin.get(a);cin.get(b);cin.get(c);cout<<a<<b<<c;}清空輸入緩沖輸入緩沖的清空可以通過(guò)sync()來(lái)完成。cin.sync();//使得所有輸入緩沖中未被
的內(nèi)容從此被忽略。ignore(int,
int)第1個(gè)參數(shù)為要提取的字符數(shù)量,第2個(gè)參數(shù)表示遇到該字符則結(jié)束(提取該結(jié)束字符),對(duì)所提取的字符不保存、不處理,作用是空讀。cin.ignore(255,
‘\n’);//清除多余的字符和回車符。向一個(gè)字符數(shù)組中輸入字符串時(shí),可用函數(shù)cin.getline()。getline()以回車作為結(jié)束,在此之前輸入的所有字符都會(huì)放入字符數(shù)組中。例:#include
<iostream>using
namespace
std;int
main(){char
city[11];cin.getline(city,10);cout<<"城市名:"<<city;}注意:與get不同的是,getline會(huì)從輸入流中刪除分隔符(即字符并刪除它),而get會(huì)將分隔符留在流中。3.2.2
格式控制每一個(gè)iostream
庫(kù)對(duì)象都
一個(gè)格式狀態(tài)(format
state),它控制格式化操作的細(xì)節(jié),比如整型值的進(jìn)制基數(shù)或浮點(diǎn)數(shù)值的精度。C++為程序員提供了一組預(yù)定義的
符(manipulator),可用來(lái)修改對(duì)象的格式狀態(tài)。例:int
a=123;cout<<showpos<<a;顯示結(jié)果:+123缺省情況下,浮點(diǎn)值顯示6位有效位數(shù),這個(gè)值可以用成員函數(shù)precision(int)來(lái)修改。cout.precision(int)//設(shè)置有效位數(shù)(普通顯示方式)//設(shè)置精度(定點(diǎn)或科學(xué)記數(shù)方式)cout.precision(
)//返回當(dāng)前的有效位(精度)設(shè)置值fixed//定點(diǎn)數(shù)格式輸出(默認(rèn)6位精度)例:#include
<iostream>using
namespace
std;int
main(){double
n=1234567.123456789;cout
<<
"Precision:"<<cout.precision()
<<
endl<<n
<<
endl;cout.precision(8);cout
<<
"\nPrecision:
"<<
cout.precision()<<
endl<<
n
<<endl;cout<<"\nfixed:"<<fixed<<endl<<n;return
0;}Precision:
61.23457e+006Precision:
81234567.1fixed:1234567.12345679cout.width(int)//設(shè)置顯示寬度,只對(duì)緊隨其后的輸出有效cout.fill(char)//設(shè)置填充字符(系統(tǒng)默認(rèn)為空格)#include
<iostream>using
namespace
std;int
main(){int
a=1234;cout<<a<<endl;cout.width(8);cout<<a<<endl;cout<<a<<endl;cout.fill('0');cout.width(8);cout<<a<<endl;cout.width(8);cout<<a<<endl;return
0;}1234123412340000123400001234練習(xí):1、依次輸入學(xué)號(hào)和
,并輸出。2、取圓周率為3.1415926,分別輸入半徑為40和928.335,求圓面積要求各數(shù)據(jù)按域?qū)?0位輸出,先輸出半徑,再輸出其面積,輸出精度為小數(shù)點(diǎn)后10位。3.2.3
在輸入流與輸出流中使用控制符iomanip頭文件中提供了在輸入輸出流中使用的控制符,其用法參見(jiàn)
P53。本節(jié)內(nèi)容
,要求編程測(cè)試表3.1中的所有控制符。3.2.4
文件的輸入與輸出iostream庫(kù)也支持文件的輸入和輸出,所有能應(yīng)用在標(biāo)準(zhǔn)輸入和輸出上的操作符,也都
可以應(yīng)用到已經(jīng)被打開(kāi)的輸入或輸出或兩者
兼有文件上。為了打開(kāi)一個(gè)文件供輸入或輸
出除了iostream
頭文件外還必須包含頭文件:#include
<fstream>為了打開(kāi)一個(gè)輸出文件
須
一個(gè)ofstream
類型的對(duì)象:可以使用如ofstream
outfile(
"name-of-file"
);為了測(cè)試是否已經(jīng)成功地打開(kāi)了一個(gè)文件,下代碼:if
(
!outfile
)//如文件能打開(kāi),!outfile返回truecerr<<"文件不能打開(kāi)!\n";須一個(gè)類似地,為了打開(kāi)一個(gè)文件供輸入,ifstream
類型的對(duì)象:ifstream
infile(
"name
of
file"
);if(
!infile
)cerr<<"文件不能打開(kāi)!\n";例:輸出文件data.txt中的數(shù)#include
<iostream>#include
<fstream>using
namespace
std;int
main(){ifstream
infile("data.txt");int
a=0;if
(!infile){cerr<<"錯(cuò)誤:輸入文件不能打開(kāi)!\n";return
-1;}for
(;infile>>a;)cout<<a<<'\t';cout<<endl;return
0;}123
4
723
15
7924data.txt例:將文件a.txt中的內(nèi)容讀入數(shù)組s,再寫(xiě)入文件b.txt中#include
<iostream>#include
<fstream>using
namespace
std;int
main(){ifstream
infile("a.txt");ofstream
outfile("b.txt");if
(!infile){cerr<<"錯(cuò)誤:輸入文件不能打開(kāi)!\n";return
-1;}if
(!outfile){cerr<<"錯(cuò)誤:輸出文件不能打開(kāi)!\n";return
-2;}char
s[20];infile.getline(s,19);cout<<s<<endl;if
(outfile<<s)cout<<"輸出完成!";return
0;}o
world!a.txt例2:從文件a.txt讀入一個(gè)矩陣到二維數(shù)組中。#include
<iostream>#include
<fstream>using
namespace
std;int
main(){ifstream
infile;int
m[3][3];infile.open("a.txt");//打開(kāi)文件for(int
i=0;i<3;i++)for(int
j=0;j<3;j++)infile>>m[i][j];infile.close();//關(guān)閉文件for(int
i=0;i<3;i++){for(int
j=0;j<3;j++)cout<<m[i][j]<<"\t";cout<<endl;}return
0;}123422211110355415a.txt3.3
編寫(xiě)順序結(jié)構(gòu)的程序例3.5
求一元二次方程式ax2+bx+c=0的根。a,b,c的值在運(yùn)行時(shí)由鍵盤(pán)輸入,它們的值滿足b2-4ac≥0。根據(jù)求x1,x2的算法。它可以編寫(xiě)出以下C++程序:#include
<iostream>//由于程序要用到數(shù)學(xué)函數(shù)sqrt,故應(yīng)包含頭文件cmath#include
<cmath>using
namespace
std;int
main(
){double
a,b,c,x1,x2;cin>>a>>b>>c;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;return
0;}順序結(jié)構(gòu)的程序中的各執(zhí)行語(yǔ)句是順序執(zhí)行的。這種程序最簡(jiǎn)單,最容易理解。3.4
關(guān)系運(yùn)算與邏輯運(yùn)算關(guān)系運(yùn)算所謂的關(guān)系運(yùn)算,在C,C++語(yǔ)言里,就是比較運(yùn)算。算術(shù)運(yùn)算所得的結(jié)果是數(shù)值,而關(guān)系運(yùn)算所得的結(jié)果為邏輯值,也稱布爾值。即以前所學(xué)的bool類型允許的值:真或假。真用true表示,假用false表示。邏輯值與數(shù)值的關(guān)系邏輯值數(shù)值true→1false→0false←0true←非0while('3')b++;while(a=3)b++;while('3')b++;while(0.3)b++;while(3)b++;while(-3)b++;while(a=3)b++;關(guān)系操作符有:
==(比較左右值是否相等)>
(比較左值是否大于右值)>=(比較左值是否大于或等于右值,也稱為不小于)<
(比較左值是否小于右值)<=(比較左值是否小于或等于右值,也稱為不大于)!=(比較左右值是否不相等)比較是否相等,使用兩個(gè)連寫(xiě)的等號(hào)表示。因此
==和=是兩個(gè)不同的概念,后者指賦值運(yùn)算。C/C++的不等于用
!=
表示,而不是
更常見(jiàn)的
<>,請(qǐng)注意!3.4.2
邏輯運(yùn)算邏輯運(yùn)算有三個(gè)操作符:!
(非,取邏輯反,NOT)&&(邏輯與,并且,AND)||(邏輯或,或者,OR)①&&(與)操作的所有可能條件及結(jié)果:真&&
真=真真&&
假=假假&&
假=假②||
(或)操作的所有可能條件及結(jié)果:真||
真=真真||假=真假|(zhì)|
假=假③!操作:!真=假!假=真短路求值只要a為0,后面的表達(dá)式不再執(zhí)行。只要a為1,后面的表達(dá)式不再執(zhí)行。a&&ba||b如:int
a=1,b=0,c=2;c=b&&a/b>2;c=a||++b;3.4.3
運(yùn)算優(yōu)先級(jí)例:a+b>a+c
→
(a+b)>(a+c)a>b&&x>y
→
(a>b)&&(x>y)!a||a>b
→
(!a)||(a>b)5>3&&8<4-!0
自左至右掃描求解。高!↑算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&和||低賦值運(yùn)算符3.5
分支結(jié)構(gòu)程序設(shè)計(jì)if語(yǔ)句if(條件表達(dá)式)語(yǔ)句;或if(條件表達(dá)式){語(yǔ)句1;語(yǔ)句2;…}編譯器必須在if條件表達(dá)式的后面找到1個(gè)作為語(yǔ)句結(jié)束符的“;”號(hào)以標(biāo)志語(yǔ)句的結(jié)束。從語(yǔ)法上來(lái)說(shuō),塊可以被認(rèn)為是單個(gè)語(yǔ)句。例:#include
<iostream>using
namespace
std;int
main(){char
c;cout<<"press
a
key
:
";cin.get(c);if(c=='b')cout<<'\a';return
0;}3.5.2
if…else語(yǔ)句if(條件表達(dá)式)語(yǔ)句1;else語(yǔ)句2;例:#include
<iostream>using
namespace
std;int
main(){char
c;cout<<"press
a
key
:
";cin.get(c);if(c=='b')cout<<'\a';elsecout<<"bye!"<<endl;return
0;}3.5.3
if語(yǔ)句的嵌套if(表達(dá)式1)語(yǔ)句1;else
if(表達(dá)式2)語(yǔ)句2;else語(yǔ)句3;else連接到其上面第1個(gè)沒(méi)有配對(duì)的且為可見(jiàn)的if上(就近配對(duì))。思考:int
a=0,b=0;cin>>a;if(a>10)b=1;else
if(a>5)b=2;elseb=3;cout<<b<<endl;int
a=0,b=0;cin>>a;if(a>10)b=1;if(a>5)b=2;elseb=3;cout<<b<<endl;3.5.4
switch語(yǔ)句switch語(yǔ)句也稱為開(kāi)關(guān)語(yǔ)句,它是多分支結(jié)構(gòu),而if語(yǔ)句是兩分支結(jié)構(gòu),在實(shí)際中常常會(huì)碰到多分支選擇問(wèn)題,例如學(xué)生成績(jī)分類(90分以上為A,80-89分為B,70-79分為C)。當(dāng)條件值為一系列整數(shù)值時(shí),用switch語(yǔ)句比較簡(jiǎn)捷。switch語(yǔ)句的格式:switch(整型或字符型變量){case變量可能值1
:分支一;[break;]case變量可能值2
:分支二;[break;]case
變量可能值3
:分支三;[break;]...default:最后分支;}當(dāng)表達(dá)式的值與某一個(gè)case后面的常量表達(dá)值相等時(shí),就執(zhí)行此case后面的語(yǔ)句,若所有
case中的常量表達(dá)式都沒(méi)有與表達(dá)式值匹配,就執(zhí)行default后面的語(yǔ)句。例:根據(jù)考試成績(jī)grade的等級(jí)值’A’,’B’,’C’,’D’和’E’,輸出百分制分?jǐn)?shù)段。#include
<iostream>usingnamespace
std;int
main(){chargrade='D';switch(grade){case
'A':cout<<"90--100\n";
break;case'B':cout<<"80--89\n";
break;case'C':cout<<"70--79\n";
break;case'D':cout<<"60--69\n";
break;case'E':cout<<"<60\n";
break;default:cout<<"error\n";}return
0;}注意:①switch后面括號(hào)中的表達(dá)式只能是整型、字符型或枚舉型表達(dá)式。②各個(gè)case(包括default)的出現(xiàn)次序可以任意。③case常量表達(dá)式的值必須唯一。④case與default并不改變控制流程,程序從相匹配的語(yǔ)句起向下執(zhí)行,不再判斷?、輎f與switch互相彌補(bǔ)。例:double
grade;cin>>grade;if(grade>=90&&grade<=100)cout<<"A\n";else
if(grade>=80&&grade<90)cout<<"B\n";…例:重已知郵寄
的計(jì)費(fèi)標(biāo)準(zhǔn)如下,輸入量以及郵寄距離,計(jì)算出郵資。重量(克)郵資(元/件)15530945126014(每千公里加收1元)75及以上15(每千公里加收1元)重量在檔次之間按高檔靠3.5.5
條件運(yùn)算符條件運(yùn)算符要求有3個(gè)操作對(duì)象,稱三目(元)運(yùn)算符,它是C++中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為表達(dá)式1?表達(dá)式2
∶表達(dá)式3條件運(yùn)算符的執(zhí)行順序是:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。例輸入一個(gè)字符,判別它是否為大寫(xiě)字母,如果是,將它轉(zhuǎn)
換成小寫(xiě)字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。#include
<iostream>using
namespace
std;int
main(
){charch;cin>>ch;ch=(ch>='A'
&&
ch<='Z')?(ch+32):ch;//判別ch是否大寫(xiě)字母,是則轉(zhuǎn)換cout<<ch<<endl;return0;}3.6
循環(huán)結(jié)構(gòu)程序設(shè)計(jì)C++提供了3種循環(huán)語(yǔ)句的形式來(lái)描述循環(huán)結(jié)構(gòu),分別是while語(yǔ)句、do-while語(yǔ)句和for語(yǔ)句。3.6.1
while語(yǔ)句while語(yǔ)句的作用是判斷一個(gè)條件表達(dá)式,以便決定是否應(yīng)當(dāng)進(jìn)入和執(zhí)行循環(huán)體。當(dāng)滿足該條件時(shí)進(jìn)行循環(huán),不滿足該條件時(shí),則不再執(zhí)行循環(huán),其表現(xiàn)形式為:while(條件表達(dá)式)循環(huán)體while循環(huán)由4個(gè)部分組成:循環(huán)變量初始化,繼續(xù)條件,循環(huán)體和改變循環(huán)變量的值。循環(huán)變量初始化繼續(xù)條件循環(huán)體
改變循環(huán)變量非00inti=1;//循環(huán)變量初始化while(i<=10){sum+=i;//繼續(xù)條件//循環(huán)體i++;//改變循環(huán)變量的值}3.6.2
do…while語(yǔ)句do…while語(yǔ)句的形式為:do循環(huán)體while(條件表達(dá)式);當(dāng)流程到達(dá)do后立即執(zhí)行循環(huán)體語(yǔ)句,然后再對(duì)條件表達(dá)式進(jìn) 試,若條件表達(dá)式的值為非0,則重復(fù)循環(huán),否則退出。do…while循環(huán)在循環(huán)體底部進(jìn)行繼續(xù)條件的測(cè)試,所以它至少將執(zhí)行一次循環(huán)體;而while循環(huán)在循環(huán)的頂部測(cè)試,有可能
不執(zhí)行循環(huán)體。循環(huán)變量初始化循環(huán)體
改變循環(huán)變量繼續(xù)條件非00例:#include
<iostream>using
namespacestd;int
main(){char
c;do
{cout<<"請(qǐng)輸入一個(gè)字母:"<<endl;cin>>c;}
while(c<'A'||(c>'Z'&&c<'a')||c>'z');cout<<c<<endl;return
0;}3.6.3
for語(yǔ)句for語(yǔ)句是C++編程中最主要的循環(huán)語(yǔ)句。for語(yǔ)句的一般表現(xiàn)形式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體例:for(int
i=1;i<=10;i++)cout<<"
o!"<<endl;for語(yǔ)句頭上的括號(hào)由兩個(gè)分號(hào)隔開(kāi)了三個(gè)部分,分別表示:①循環(huán)變量初始化(int
i=1);②條件判斷(i<=10),表示循環(huán)的繼續(xù)判斷,當(dāng)條件為真時(shí)繼續(xù)循環(huán),否則結(jié)束循環(huán)。③循環(huán)變量的增量(i++),表示循環(huán)的狀態(tài)修正。for語(yǔ)句的執(zhí)行過(guò)程:①先求解表達(dá)式1。②求解表達(dá)式2,若為0,則結(jié)束循環(huán),轉(zhuǎn)到⑤。③若表達(dá)式2為真,執(zhí)行循環(huán)體,然后求解表達(dá)式3。④轉(zhuǎn)回②。⑤執(zhí)行for語(yǔ)句下面的一個(gè)語(yǔ)句。表達(dá)式1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理總復(fù)習(xí)專題二相互作用第1講力、重力、彈力、摩擦力練習(xí)含答案
- 藥品供應(yīng)鏈購(gòu)銷合同樣本
- 訂立勞動(dòng)合同應(yīng)遵循哪些原則
- 高考地理一輪復(fù)習(xí)第五章地表形態(tài)的塑造第四節(jié)河流地貌的發(fā)育課件
- 九年級(jí)道德與法治上冊(cè) 第五單元 和諧中國(guó) 和諧世紀(jì) 第一節(jié) 和諧之美 第2框 和諧是人類永恒的追求教學(xué)設(shè)計(jì)+教案+素材 湘教版
- 八年級(jí)生物下冊(cè) 第七單元 生物圈中生命的延續(xù)和發(fā)展第二章 生物的遺傳和變異第四節(jié) 人的性別遺傳教案 (新版)新人教版
- 2024年秋九年級(jí)化學(xué)上冊(cè) 第三單元 物質(zhì)構(gòu)成的奧秘 課題1 分子和原子教案 (新版)新人教版
- 2024-2025學(xué)年七年級(jí)道德與法治上冊(cè) 第一單元 成長(zhǎng)的節(jié)拍 第一課 中學(xué)時(shí)代 第1框 中學(xué)時(shí)代教案 新人教版
- 高中地理 第四章 生態(tài)環(huán)境保護(hù) 4.4 中國(guó)區(qū)域生態(tài)環(huán)境問(wèn)題及其防治途徑教案 新人教版選修6
- 2024年二年級(jí)品社下冊(cè)《主題1 我發(fā)現(xiàn)》教案 上??平贪?/a>
- 新能源汽車保險(xiǎn)與理賠
- 養(yǎng)老事業(yè)與養(yǎng)老產(chǎn)業(yè)的比較研究以日本養(yǎng)老事業(yè)與養(yǎng)老產(chǎn)業(yè)為例
- 下肢動(dòng)脈閉塞癥的護(hù)理
- 微觀經(jīng)濟(jì)學(xué)(第三版)課程標(biāo)準(zhǔn)
- 單位職工酒駕檢討書(shū)范文
- 心臟驟停與猝死
- 學(xué)校保密知識(shí)培訓(xùn)課件
- 中醫(yī)藥研究院運(yùn)營(yíng)方案
- 《功能材料概論》課件
- 工程師職稱代評(píng)銷售話術(shù)
- POCT臨床應(yīng)用與質(zhì)量管理
評(píng)論
0/150
提交評(píng)論