第5講C++的控制語句_第1頁
第5講C++的控制語句_第2頁
第5講C++的控制語句_第3頁
第5講C++的控制語句_第4頁
第5講C++的控制語句_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

制作者:王甜甜C++的控制語句學(xué)習(xí)內(nèi)容C++語句概述C++程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)限定轉(zhuǎn)向語句breakcontinueC++語句概述語句(statement)是程序中最小的可執(zhí)行單位。一條語句可以完成一種基本操作,若干條語句組合在一起就能實現(xiàn)某種特定的功能。C++中語句可以分為以下三種形式:1、單一語句在任何一個表達式后面加上分號(;)就構(gòu)成了一條簡單的C++語句例如:c=a+b;a>b?a:b;cout<<“HelloC++”<<endl;C++語句概述2.空語句僅由單個分號構(gòu)成的語句,即;空語句不進行任何操作。該語句被用在從語法上需要一條語句,但實際上卻又不進行任何操作的地方。3.復(fù)合語句復(fù)合語句是用一對花括號{}括起來的語句塊。復(fù)合語句在語法上等效于一個單一語句。使用復(fù)合語句應(yīng)注意:(1)

花括號必須配對使用;(2)花括號外不要加分號C++程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)順序結(jié)構(gòu)BA程序按照語句的書寫順序依次執(zhí)行,語句在前的先執(zhí)行,語句在后的后執(zhí)行,只能滿足設(shè)計簡單程序的要求。

分支結(jié)構(gòu)BNAY條件P在分支結(jié)構(gòu)中,程序根據(jù)判斷條件是否成立,來選擇執(zhí)行不同的程序段。也就是說,這種程序結(jié)構(gòu),能有選擇地執(zhí)行程序中的不同程序段。

循環(huán)結(jié)構(gòu)在循環(huán)結(jié)構(gòu)中,程序根據(jù)判斷條件是否成立,來決定是否重復(fù)執(zhí)行某個程序段。

條件PA當(dāng)型循環(huán)直到型循環(huán)真假假條件PA假真if語句if語句是最常用的一種分支語句,也稱為條件語句。if語句有三種形式:單分支if

語句、雙分支if語句多分支if語句單分支if語句語法:if(表達式)語句執(zhí)行過程先計算關(guān)鍵字if后面的表達式的值,若為真,則執(zhí)行if后的“語句”部分,否則跳過該“語句”部分。不管是否執(zhí)行“語句”部分,最后都要接著“語句”部分的后面,繼續(xù)執(zhí)行程序的其它部分。真假表達式語句單分支if語句說明:括號不能省略。在if(表達式)后不能加分號“;”。關(guān)鍵字if的后面的表達式可以是任意的表達式,只要表達式的值為非0,即當(dāng)真值處理,否則當(dāng)假值處理。if語句的內(nèi)嵌語句可以是單一語句,也可以是復(fù)合語句。盡量使if語句的內(nèi)嵌語句比if語句縮進這是良好編程書寫風(fēng)格。例子:intx=0,y=2;

if(x==0)y++;

cout<<x<<y;雙分支if語句語法格式:

if(表達式)

語句塊1

else

語句塊2

執(zhí)行過程:先判斷表達式的值,若為真,則執(zhí)行語句塊1,否則執(zhí)行語句塊2。不管程序執(zhí)行語句塊1還是執(zhí)行語句塊2,最后都要跳到語句塊2的后面接著執(zhí)行程序中后面的語句。真假表達式語句塊1語句塊2雙分支if語句說明:語句塊1、語句塊2既可以是單一語句也可以是用{}括起來的復(fù)合語句。else子句必須與if子句配對使用,不能單獨使用else子句必須處在if子句的后面,且else語句總是和離它最近的前面未配對的if語句配對。例子:輸入一個年號,判斷是否為閏年,如果是則輸出“yes”,否則輸出“Not”。分析:只要滿足下列兩個條件之一者,即是閏年。①年號能被4整除,但要排除同時能被100整除;②年號能被400整除。#include<iostream.h>voidmain(){inty;

cout<<"輸入一個年號:";

cin>>y;if((y%4==0&&y%100!=0)||(y%400==0))

cout<<"Yes";else

cout<<"Not";

cout<<"\n程序運行結(jié)束";}多分支if語句一般形式為:if(表達式1)

語句1elseif(表達式2)

語句2elseif(表達式3)

語句3 ………………elseif(表達式N)

語句Nelse

語塊N+1說明:在if語句嵌套中else與if配對關(guān)系,else與離它最近的if語句相匹配。真真真假假假表達式1表達式2語句1語句2語句3語句4多分支if語句#include<iostream.h>voidmain(){ floatscore;

cout<<"Inputscore(0~100):";

cin>>score;

if(score>=90)

cout<<"Excellent!"; elseif(score>=80)

cout<<"Good!"; elseif(score>=70)

cout<<"Right!"; elseif(score>=60)

cout<<"Pass!";else

cout<<"Failed!";}例子:輸入學(xué)生的成績score,按分數(shù)輸出其等級:score≥90為優(yōu),90>score≥80為良,80>score≥70為中等,70>score≥60為及格,score<60為不及格。switch語句一般形式為:

switch(表達式){

case常數(shù)1:

語句序列1;

case常數(shù)2:

語句序列2;

…………

default:

語句序列3;

}執(zhí)行過程:說明:1、表達式可以是整形、字符型、枚舉型2、case后的常量類型=switch中表達式類型3、常數(shù)1-常數(shù)n必須互不相同且每一常數(shù)后面要有冒號:4、各case子句和default子句的次序可任意5、default可以沒有,但最好不省略6、如果要使每個case處相當(dāng)于一種if(s)else的效果,必須在其語句組最后加上break語句。7、各case子句后面必須是常數(shù),而不能是變量或表達式switch語句#include<iostream.h>voidmain(){floatscore;

inta;

cout<<"Inputscore(0~100):";

cin>>score;a=score/10;

switch(a){case0:case9:cout<<"Excellent!";break;case8:cout<<"Good!";break;case7:cout<<"Right!";break;case6:cout<<"Pass!";break;

default:cout<<"Failed!";}}例子:輸入學(xué)生的成績score,按分數(shù)輸出其等級:score≥90為優(yōu),90>score≥80為良,80>score≥70為中等,70>score≥60為及格,score<60為不及格。switch和else-if的比較else-if比switch的條件控制更強大一些else-if可以依照各種邏輯運算的結(jié)果進行流程控制switch只能進行==判斷,并且只能是整數(shù)判斷switch比else-if更清晰兩者都要盡量避免用得過多、過長,尤其不要嵌套得太多它們大大增加程序的分支,使邏輯關(guān)系顯得混亂,不易維護,易出錯循環(huán)語句C++提供了三種循環(huán)結(jié)構(gòu):while循環(huán)語句、do-while循環(huán)語句for循環(huán)語句while語句語法形式:while(表達式){循環(huán)體語句}執(zhí)行過程:首先判斷while后面的表達式的值,若表達式的值為真,則執(zhí)行while的內(nèi)嵌語句(即循環(huán)體)一次;然后重復(fù)以上過程,直到表達式的值為假時,才退出循環(huán)接著執(zhí)行循環(huán)體語句后面的其它程序語句循環(huán)體語句表達式FTwhilewhile語句例子:求#include<iostream.h>#include<iostream.h>voidmain(){int

i,n;n=0; i=1;

while(i<=100) {n=n+i; i++;}

cout<<"n="<<n<<endl;}do-while循環(huán)語句語法形式:do{循環(huán)體語句}while(表達式);執(zhí)行過程:首先執(zhí)行do-while的內(nèi)嵌語句(循環(huán)體語句)一次然后再判斷while后面的表達式的值,若表達式的值為真,則重復(fù)執(zhí)行do-while的內(nèi)嵌語句,如此反復(fù),直到表達式的值為假時,循環(huán)結(jié)束,執(zhí)行while后面的語句。statements表達式FTdo/whiledo-while循環(huán)語句例子:求#include<iostream.h>voidmain(){int

i,n; n=0;i=1;do{n=n+i; i++;}

while(i<=100);

cout<<"n="<<n<<endl;}while語句和do-while在循環(huán)體相同的情況下while語句和do-while語句的功能基本相同二者的區(qū)別在于:while:先驗證條件,再執(zhí)行語句do/while:先執(zhí)行語句,再驗證條件當(dāng)循環(huán)條件一開始就為假時,do-while語句中的循環(huán)體至少會被執(zhí)行一次,而while語句則一次都不執(zhí)行。

for循環(huán)語句語法形式:for(表達式1;表達式2;表達式3){循環(huán)體語句}說明:表達式1:初始化表達式表達式2:判斷條件表達式表達式3:修正表達式,循環(huán)參數(shù)調(diào)整循環(huán)體有多條語句時,要加{}表達式可缺省,但分號不能省,如

intn=1;for(;n<10;n++)變量可在表達式中聲明:

for(intn=1;n<10;n++)

等價于:while(表達式2){

語句;

表達式3;

}for循環(huán)語句執(zhí)行過程:①執(zhí)行for后面的表達式1;②執(zhí)行表達式2,若表達式2的值為真,則執(zhí)行for語句的內(nèi)嵌語句(即循環(huán)體語句),然后執(zhí)行第③步,若為假,則循環(huán)結(jié)束,執(zhí)行第⑤步;③執(zhí)行表達式3;④返回繼續(xù)執(zhí)行第②步;⑤循環(huán)結(jié)束,執(zhí)行for語句的循環(huán)體下面的語句。表達式1

表達式2表達式3循環(huán)體語句TFfor循環(huán)語句例子:求#include<iostream.h>voidmain(){int

i,n;n=0;

for(i=1;i<=100;i++) n=n+i;

cout<<"n="<<n<<endl;}選擇三種循環(huán)的一般原則如果循環(huán)次數(shù)已知,用for如果循環(huán)次數(shù)未知,用while如果循環(huán)體至少要執(zhí)行一次,用do-while這只是“一般”原則,不是“原則”循環(huán)嵌套在一個循環(huán)的循環(huán)體中又包含另一個循環(huán)語句,稱為循環(huán)嵌套。C++的三種循環(huán)語句可以相互嵌套,構(gòu)成循環(huán)嵌套。以下幾種都是合法的循環(huán)嵌套:

(1)for(;;) {…… for(;;) { } ……}(2)while(){……for(;;) {}do{…… }while();……}(3)do{…… for(;;) { }

……}while();循環(huán)嵌套在嵌套的各層循環(huán)體中,使用復(fù)合語句(即用一對大花括號將循環(huán)體語句括起來)保證邏輯上的正確性內(nèi)層和外層循環(huán)控制變量不應(yīng)同名,以免造成混亂嵌套的循環(huán)最好采用右縮進格式書寫,以保證層次的清晰性循環(huán)嵌套不能交叉,即在一個循環(huán)體內(nèi)必須完整的包含著另一個循環(huán)限定轉(zhuǎn)向語句breakcontinuebreak語句語法形式:break;該語句只能用于兩種情況:(1)用在switch結(jié)構(gòu)中,當(dāng)某個case子句執(zhí)行完后,使用break語句跳出switch結(jié)構(gòu)。(2)用在循環(huán)結(jié)構(gòu)中,用break語句來結(jié)束循環(huán)。如果在嵌套循環(huán)中,break語句只能結(jié)束其所在的那層循環(huán)。假假真真break表達式1表達式2循環(huán)語句的下一條語句break語

溫馨提示

  • 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

提交評論