版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2025/11/30可編輯-1-C++高級語言程序設(shè)計第3章C++控制語句
北京郵電大學信息與通信工程工程學院2025/11/30可編輯-2-用計算機解決實際問題,首先要分析問題,設(shè)計合適的算法,然后編程實現(xiàn)算法。2025/11/30可編輯-3-第3章過程化語句3.1算法的基本控制結(jié)構(gòu)3.2if選擇語句3.3switch選擇語句3.4循環(huán)語句3.5循環(huán)嵌套3.6應(yīng)用舉例2025/11/30可編輯-4-3.1算法的基本控制結(jié)構(gòu)
2025/11/30可編輯-5-3.1算法的基本控制結(jié)構(gòu)算法
1、計算機執(zhí)行的操作2、這些操作的順序偽碼
采用類似計算機語言的分句格式,以自然語言描述算法。
2025/11/30可編輯-6-3.1算法的基本控制結(jié)構(gòu)流程圖
開始/結(jié)束執(zhí)行判斷聯(lián)系2025/11/30可編輯-7-3.1算法的基本控制結(jié)構(gòu)程序的三種基本控制結(jié)構(gòu)(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)2025/11/30可編輯-8-3.1算法的基本控制結(jié)構(gòu)流程控制語句
選擇語句:if..else、switch
循環(huán)語句:while、for、do..while
轉(zhuǎn)向語句:break、continue2025/11/30可編輯-9-3.1算法的基本控制結(jié)構(gòu)算法及其表示偽代碼表示類似于計算機語言的分句格式,以少量關(guān)鍵詞和自然語言形式描述流程圖表示以流程圖符號表示程序的執(zhí)行流程2025/11/30可編輯-10-歐幾里得算法描述舉例輾轉(zhuǎn)相除法求兩個自然數(shù)m和n的最大公約數(shù),假定m≥n偽代碼描述:
流程圖描述:1.inputm,n2.r=m%n;3.while(r!=0)3.1m=n;3.2n=r;3.3r=m%n;4.outputn;2025/11/30可編輯-11-3.2if選擇語句
2025/11/30可編輯-12-3.2if選擇語句if_else
1、沒有else分支
2、雙分支3、多分支4、if
語句的嵌套2025/11/30可編輯-13-3.2if選擇語句1、沒有else分支例如:比較x和y的大小,如果x大則輸出x的值if(表達式)語句;if(x>y)cout<<x<<endl;2025/11/30可編輯-14-3.2if選擇語句2、雙分支例如:比較x,y的大小,將較大的數(shù)輸出
if(表達式)語句1;else
語句2;if(x>y)cout<<x<<endl;else
cout<<y<<endl;2025/11/30可編輯-15-例子
任意輸入一個4位整數(shù)的年份,判斷該年是否是潤年?
是指年份能被4整除的那些年,但不包括能被100整除而不能被400整除的年2025/11/30可編輯-16-#include<iostream>usingnamespacestd;voidmain(){ intyear; cin>>year;
if((year%4==0)&&!((year%100==0)&&(year%400!=0))) cout<<"潤年"<<endl; else cout<<"不是潤年"<<endl;}2025/11/30可編輯-17-3.2if選擇語句3、多分支if(表達式1)語句1;
elseif(表達式2)
語句2;
elseif(表達式3)
語句3;…
else
語句n;2025/11/30可編輯-18-2025/11/30可編輯-19-例子:輸出學生的成績#include<iostream>usingnamespacestd;voidmain(){ intx;cin>>x;
if(x>=90)cout<<“優(yōu)秀”<<endl;elseif(x>=80)
cout<<“良好”<<endl;
elseif(x>=60)cout<<“合格”<<endl;elsecout<<“不及格”<<endl;}2025/11/30可編輯-20-3.2if選擇語句4、if語句的嵌套if(表達式1)
if(表達式2)語句1
else
語句2elseif(表達式3)語句3
else
語句42025/11/30可編輯-21-2025/11/30可編輯-22-例子:輸出a,b,c中較大的數(shù)#include<iostream>usingnamespacestd;voidmain(){ inta,b,c;cin>>a>>b>>c;
if(a>b) { if(a>c)cout<<a<<endl; elsecout<<c<<endl; } else { if(b>c)cout<<b<<endl; elsecout<<c<<endl; }}cout<<(a>b?(a>c?a:c):(b>c?b:c));2025/11/30可編輯-23-3.2if選擇語句注意:二義性intx=-1;if(x>0)if(x<50)cout<<“xis<50”endl;elsecout<<“xis<=0”<<endl;
if和else的對應(yīng)關(guān)系,else總是與離它最近的if匹配。{}2025/11/30可編輯-24-3.3switch選擇語句
2025/11/30可編輯-25-3.3switch選擇語句跳出switch語句2025/11/30可編輯-26-2025/11/30可編輯-27-例子:輸出學生的成績
intx;cin>>x;
switch(x/10){case10:case9:cout<<“優(yōu)秀”<<endl;break;case8:cout<<“良好”<<endl;break;case7:case6:cout<<“合格”<<endl;break;default:cout<<“不及格”<<endl; }2025/11/30可編輯-28-switch語句注意事項case的常量表達式可以是字符型、整型或枚舉型,通常,也只是一個常量。不能放置條件不等式或變量.各個case的先后順序不影響執(zhí)行結(jié)果,由編程者合理安排。switch語句每當找到匹配的常量表達式,則從此標號開始執(zhí)行下去,不再進行判斷,即將此后的其它case下的語句也都執(zhí)行。直到碰到break語句或switch語句結(jié)束。一般來說,在每個case的執(zhí)行語句結(jié)束處,應(yīng)該加上break語句。2025/11/30可編輯-29-3.4循環(huán)語句
2025/11/30可編輯-30-3.4循環(huán)語句三種基本語法 1、while語句 2、do…while語句 3、for語句2025/11/30可編輯-31-#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){cout<<setfill('*') <<setw(2)<<'\n' <<setw(3)<<'\n' <<setw(4)<<'\n' <<setw(5)<<'\n' <<setw(6)<<'\n' <<setw(7)<<'\n' <<setw(8)<<'\n';}****************************2025/11/30可編輯-32-#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){inti=2;cout<<setfill('*');
while(i<=8) {cout<<setw(i)<<'\n';i++;}}****************************循環(huán)變量循環(huán)體循環(huán)控制條件2025/11/30可編輯-33-3.4循環(huán)語句主要包括3個部分:1、循環(huán)控制條件:判斷循環(huán)操作是否進行的條件;2、循環(huán)體:重復進行的操作;3、循環(huán)控制變量:記錄循環(huán)體執(zhí)行的次數(shù),或控制循環(huán)的結(jié)束條件。2025/11/30可編輯-34-3.4循環(huán)語句while循環(huán)語句while(表達式)循環(huán)體語句;2025/11/30可編輯-35-例1:編程循環(huán)輸出1-9這9個數(shù)字?
#include<iostream>usingnamespacestd;voidmain(){inti=1;
while(i<9){cout<<i<<endl;i++;}cout<<“循環(huán)結(jié)束”<<endl;}運行結(jié)果:123456789循環(huán)結(jié)束 2025/11/30可編輯-36-例2:編程計算1+2+3+….+10的值
#include<iostream>usingnamespacestd;voidmain(){intsum=0,i=0;
whil(i<=10){sum+=i;i++;}
cout<<sum<<endl;}552025/11/30可編輯-37-例3:打印可視字符#include<iostream>usingnamespacestd;voidmain(){unsignedcharch=32;while(ch<128){cout<<(int)ch<<'\t'<<ch<<'\t';ch++; }}2025/11/30可編輯-38-例4:編程計算的值#include<iostream>usingnamespacestd;voidmain(){ intk=1,sum=0,n; cout<<"inputn(n>0):"; cin>>n;
while(k<=n){sum=sum+k*k;k++; } if(n>0) cout<<sum/n<<endl; else cout<<"n不能<=0"<<endl;}2025/11/30可編輯-39-3.4循環(huán)語句do..while循環(huán)語句
do{
循環(huán)體語句;}while(表達式);2025/11/30可編輯-40-#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){inti=2;cout<<setfill('*');
while(i<=8) {cout<<setw(i)<<'\n';i++;}}****************************do{cout<<setw(i)<<'\n';i++;}while(i<=8);2025/11/30可編輯-41-例子:編程計算的值#include<iostream>usingnamespacestd;voidmain(){ intk=1,sum=0,n; cout<<"inputn(n>0):"; cin>>n;
while(k<=n){sum=sum+k*k;k++;} if(n>0) cout<<sum/n<<endl; else cout<<"n不能<=0"<<endl;}do{sum=sum+k*k;k++;}while(k<=n);2025/11/30可編輯-42-3.4循環(huán)語句for循環(huán)語句
循環(huán)結(jié)構(gòu)
1、表達式1循環(huán)變量初始化;
2、表達式2
循環(huán)控制條件;3、表達式3循環(huán)變量的變化;for(表達式1;表達式2;表達式3)循環(huán)體;2025/11/30可編輯-43-例1:編程循環(huán)輸出1-9這9個數(shù)字?
#include<iostream>usingnamespacestd;voidmain(){
for(inti=1;i<10;i++)cout<<i<<endl;
cout<<“循環(huán)結(jié)束”<<endl;}運行結(jié)果:123456789循環(huán)結(jié)束2025/11/30可編輯-44-例2:編程計算1+2+3+….+10的值
#include<iostream.>usingnamespcestd;voidmain(){intsum=0;
for(inti=1;i<=10;i++)sum+=i;
cout<<sum<<endl;}運行結(jié)果:55 2025/11/30可編輯-45-#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){cout<<setfill('*');}****************************例3for(inti=2;i<=8;i++)cout<<setw(i)<<'\n';2025/11/30可編輯-46-3.4循環(huán)語句——for語句1、<表達式1>可以省略
for(inti=1;i<=9;i++)
循環(huán)體;
inti=1;for(;i<=9;i++)
循環(huán)體;2025/11/30可編輯-47-3.4循環(huán)語句——for語句2、<表達式2>可以省略for(inti=1;i<=9;i++)
循環(huán)體;
for(inti=1;;i++){if(i<=9)循環(huán)體;
elsebreak;//跳轉(zhuǎn)語句,用來跳出循環(huán)}2025/11/30可編輯-48-3.4循環(huán)語句——for語句3、<表達式3>可以省略for(inti=1;i<=9;i++)
循環(huán)體;
for(inti=1;i<=9;){
循環(huán)體;i++;}2025/11/30可編輯-49-3.4循環(huán)語句——for語句3、<表達式1><表達式3>同時省略
for(inti=1;i<=9;i++)
循環(huán)體;
inti=1;for(;i<=9;){
循環(huán)體;i++;}2025/11/30可編輯-50-3.4循環(huán)語句——for語句5、極端情況,可實現(xiàn)無限循環(huán)
for(;;){循環(huán)體;}2025/11/30可編輯-51-例4:判斷輸出結(jié)果?#include<iostream>usingnamespacestd;voidmain(){
for(inti=0,j=10,k=0;i<j;i++,j--) k+=i*j; cout<<k<<endl;}分析:ijk010019928253746467055 跳出2025/11/30可編輯-52-3.4循環(huán)語句1、for:
最適合循環(huán)次數(shù)固定,循環(huán)規(guī)律非常明顯程序。2、while:
使用最多最頻繁的循環(huán)結(jié)構(gòu),具有普適性。3、do_while:
最適合至少循環(huán)一次的循環(huán)結(jié)構(gòu)。2025/11/30可編輯-53-3.4.4轉(zhuǎn)向語句1、break語句2、continue語句2025/11/30可編輯-54-3.4.4轉(zhuǎn)向語句——break用途:
常用在while、do-while、for和switch語句中,用來跳出循環(huán)或switch語句。2025/11/30可編輯-55-例1:判斷輸出結(jié)果?#include<iostream>usingnamespacestd;voidmain(){ intsum=0;for(inti=1;i<10;i++) { if(i%3==0)break; sum+=i; } cout<<sum<<endl;}分析isum11233跳出
2025/11/30可編輯-56-3.4.4轉(zhuǎn)向語句——continue用途用于循環(huán)語句中,結(jié)束本次循環(huán),進行下一次循環(huán);即跳過循環(huán)體中尚未執(zhí)行的部分。2025/11/30可編輯-57-例1:判斷輸出結(jié)果?#include<iostream>usingnamespacestd;voidmain(){ intsum=0;for(inti=1;i<10;i++) { if(i%3==0)continue; sum+=i; } cout<<sum<<endl;}分析isum11233371212192727跳出 2025/11/30可編輯-58-3.5循環(huán)嵌套
2025/11/30可編輯-59-3.5循環(huán)嵌套編程輸出國際象棋棋盤#include<iostream>usingnamespacestd;voidmain(){
for(inti=0;i<8;i++) { for(intj=0;j<8;j++) { if((i+j)%2==0) cout<<"■";else cout<<""; } cout<<"\n"; }}■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■2025/11/30可編輯-60-思考:寫出每個程序各輸出結(jié)果A:for(i=0,k=1;i<10;i++)if(i%5)k=i*10;elsecout<<”k:”<<k;B:for(i=0,k=1;i<10;i++){if(i%5)k=i*10;cout<<”k:”<<k;}D:for(i=0,k=1;i<10;i++)if(i%5){k=i*10;cout<<”k:”<<k;}C:for(i=0,k=1;i<10;i++){if(i%5!=0)k=i*10;}cout<<”k:”<<k;2025/11/30可編輯-61-思考題目:使用For循環(huán)輸出如下圖形:
* ** *** ****
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲業(yè)連鎖店長招聘考試題庫
- 2025福建省廈門輪船有限公司廈門輪總海上客運旅游有限公司校園招聘2人筆試參考題庫附帶答案詳解(3卷合一版)
- 2025福建投資集團能源板塊去場招聘114人筆試參考題庫附帶答案詳解(3卷合一版)
- 2025年第四批中煤錫林郭勒芒來發(fā)電有限公司招聘36人筆試參考題庫附帶答案詳解(3卷)
- 2025年合肥市醫(yī)療器械檢驗檢測中心有限公司社會招聘筆試參考題庫附帶答案詳解(3卷)
- 河北省2024年河北金融學院選聘工作人員60名筆試歷年參考題庫典型考點附帶答案詳解(3卷合一)
- 職業(yè)發(fā)展專員考試題集含答案
- 教育機構(gòu)老師面試題及答案
- 餐飲業(yè)市場調(diào)研員面試題目分析
- 頂級投資顧問面試題集及答案詳解
- GB/T 27995.1-2025半成品鏡片毛坯第1部分:單焦和多焦
- 護理部主任年終匯報
- 《電力市場概論》 課件 第七章 發(fā)電投資分析
- 2024年新蘇教版四年級上冊科學全冊知識點(復習資料)
- 題庫二附有答案
- 市場拓展與銷售渠道拓展方案
- 工地大門施工協(xié)議書
- 鐵血將軍、建軍元勛-葉挺 (1)講解
- 2023年西門子PLC知識考試題(附含答案)
- 鼻鼽(變應(yīng)性鼻炎)診療方案
- 消防應(yīng)急疏散和滅火演習技能培訓
評論
0/150
提交評論