C程序的流程控制課件_第1頁
C程序的流程控制課件_第2頁
C程序的流程控制課件_第3頁
C程序的流程控制課件_第4頁
C程序的流程控制課件_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C++程序的流程控制第三章第三章1程序或程序模塊的三種基本結構順序結構條件分支結構循環(huán)結構通過安排語句的排列順序來決定程序流程由特定的條件決定執(zhí)行哪個語句的程序結構由特定的條件決定某個語句重復執(zhí)行次數(shù)的控制方式程序或程序模塊的三種基本結構順序結構條件分支結構循環(huán)結構通2順序結構按語句的先后順序依次執(zhí)行每一條語句語句1語句2順序結構示意順序結構按語句的先后順序依次執(zhí)行每一條語句語句1語句2順序3X=3;Y=4Z=X;X=YY=Z;程序段完成的功能是:交換X和Y的值例:X=3;例:4條件語句1語句2falsetrue語句格式:

If(條件)語句1else語句2

含義:如果條件成立,執(zhí)行語句1,否則執(zhí)行語句2流程示意:—If多分支結構一條件分支結構條件語句1語句2falsetrue語句格式:含義:流程示意:5條件語句truefalse語句格式:If(條件)語句含義:如果條件成立,執(zhí)行語句1,否則什么也不做(即跳出if語句的執(zhí)行,到下一第語句)流程示意:(無else子句)—If多分支結構二條件分支結構條件語句truefalse語句格式:If(條件)語句含義6例1:輸入2個數(shù),找出其中最大的一個并顯示出來。#include<iostream.h>voidmain(){inti,j;cout<<“請輸入2個整數(shù)”;cin>>i>>j;cout<<“2個數(shù)中最大的是:”;

if(i>=j)cout<<i<<endl;elsecout<<j<<endl;}條件分支結構例1:輸入2個數(shù),找出其中最大的一個并顯示出來。#inclu7例2:輸入3個數(shù),找出其中最大的一個并顯示出來。#include<iostream.h>voidmain(){inti,j,k;cout<<“請輸入3個整數(shù)”;cin>>i>>j>>k;cout<<“3個數(shù)中最大的是:”;

if(i<j)i=j;if(i<k)i=j;cout<<i<<endl;}兩條無else分支的語句例2:輸入3個數(shù),找出其中最大的一個并顯示出來。#inclu8例3:輸入3個數(shù),然后按從大到小的順序把它們顯示出來。#include<iostream.h>voidmain(){inti,j,k,p;cout<<“請輸入3個整數(shù)”;cin>>i>>j>>k;

if(i<j){p=i;i=j;j=p;}if(i<k){p=i;i=k;k=p;}if(j<k){p=j;j=k;k=p;}cout<<endl<<i<<‘’<<j<<‘’<<k;}例3:輸入3個數(shù),然后按從大到小的順序把它們顯示出來。#in9例4:P58,例3.5,請對照書本自主學習例4:P58,例3.5,請對照書本自主學習10If語句的嵌套語句中出現(xiàn)多個if和多個else時,首先必須進行配對,配對原則:從遇見的第一個else開始,else總與離它最近的if配對。在if語句的else前嵌套另一個if語句容易使所表達的邏輯關系難于理解,應加以避免,必要時把嵌套位置改為else之后條件分支結構If語句的嵌套語句中出現(xiàn)多個if和多個else時,首先必須11If多分支結構If多分支結構是一種通過規(guī)范化的if嵌套所構成的條件分支結構,在這種結構中if語句嵌套在else之后使用格式:if(條件1)語句1elseif(條件2)語句2elseif(條件3)語句3……elseif(條件n)語句nelse語句n+1條件分支結構If多分支結構If多分支結構是一種通過規(guī)范化的if嵌套所構成12例:輸入一個0~100分范圍內的一個成績,顯示相應的等級: 90~100——優(yōu) 80~89——良 70~79——中 60~69——及格 60分以下——不及格#include<iostream.h>voidmain(){floatscore;cout<<“請輸入成績”;cin>>score;

if(score<0||score>100)cout<<“成績必須在0~100之間”;elseif(score<60)cout<<“不及格”<<endl:elseif(score<70)cout<<“及格”<<endl;elseif(score<80)cout<<“中”<<endl;elseif(score<90)cout<<“良”<<endl;elsecout<<“優(yōu)”<<endl;}例:輸入一個0~100分范圍內的一個成績,顯示相應的等級:#13switch多分支結構

switch(整型表達式){case整型常量表達式1:語句序列1

case整型常量表達式2:語句序列2…case整型常量表達式k:語句序列k〖default:語句序列k+1〗}條件分支結構switch語句格式:switch多分支結構switch(整型表達式){條件分14switch語句的含義:通過判斷整型表達式的值,決定程序的去向:若整型表達式的值與整型常量表達式1的值相同,則依次執(zhí)行語句序列1開始的各個語句序列,即執(zhí)行語句序列1,語句序列2,……語句序列k,語句序列k+1若整型表達式的值與整型常量表達式2的值相同,則依次執(zhí)行開始的各個語句序列,即執(zhí)行語句序列2,……語句序列k,語句序列k+1依此類推……若整型表達式的值不等于任何列出的整型常量表達式的值,則執(zhí)行從default開始的語句序列若沒有default語句,則什么也不做。switch語句的含義:通過判斷整型表達式的值,決定程序的去15在依次執(zhí)行語句序列的過程中,如遇見break語句,則立即停止語句序列的執(zhí)行,跳出switch分支結構因此,若要讓分支結構只執(zhí)行與整型表達式匹配的整型常量表達式后的語句序列,而不往下執(zhí)行下面的語句序列,應在該語句序列后加一條break語句在每一個整型常量表達式后的語句序列后加break語句的switch分支結構,等同于if多分支結構。break語句在switch分支結構中的應用在依次執(zhí)行語句序列的過程中,如遇見break語句,則立即停止16例1:輸入一個表示星期的數(shù)字(0表示星期日,1表示星期二,……6表示星期六),顯示對應的英文單詞。#include<iostream.h>voidmain(){intweekday;cout<<“今天星期幾?”;cin>>weekday;switch(weekday){case0:cout<<“Sunday”<<endl;break;case1:cout<<“Monday”<<endl;break;case2:cout<<“Tuesday”<<endl;break;case3:cout<<“Wednesday”<<endl;break;case4:cout<<“Thursday”<<endl;break;case5:cout<<“Friday”<<endl;break;case6:cout<<“Saturday”<<endl;break;}//weekday的值為0時,顯示Sunday,break語句阻止了往下執(zhí)行輸出語句例1:輸入一個表示星期的數(shù)字(0表示星期日,1表示星期二,…17例2:輸入一個0~100分范圍內的一個成績,顯示相應的等級: 90~100——優(yōu) 80~89——良 70~79——中 60~69——及格 60分以下——不及格(用switch多分支結構實現(xiàn))#include<iostream.h>voidmain(){floatscore;cout<<“請輸入成績”;cin>>score;switch(int(score/10)){case0:case1:case2:case3:case4:case5:cout<<“不及格”<<endl;break;case6:cout<<“及格”<<endl;break;case7:cout<<“中”<<endl;break;case8:cout<<“良”<<endl;break;case9:case10:cout<<“優(yōu)”<<endl;break;default:cout<<“成績必須在0~100分之間”;}}例2:輸入一個0~100分范圍內的一個成績,顯示相應的等級:18例2說明:int(score/10)的值為0、1、2、3、4時分別執(zhí)行case0、case1、case2、case3、case4后的語句序列是空的,程序從這些入口點進入后,直接往下走,并在執(zhí)行完case5后的語句并遇見break語句時跳出switch分支。因此當值為0~5時均顯示“不及格”。case9后的語句為空,從case9進入后,直接往下執(zhí)行case10后的語句序列,遇見break語句時跳出switch分支。因此,值為9和10時均顯示“優(yōu)”。例2說明:int(score/10)的值為0、1、2、3、419循環(huán)結構for(循環(huán)初始化;循環(huán)條件;循環(huán)參數(shù)調整)循環(huán)體for語句循環(huán)初始化循環(huán)條件循環(huán)參數(shù)調整循環(huán)體falsetruefor循環(huán)結構示意循環(huán)結構for(循環(huán)初始化;循環(huán)條件;循環(huán)參數(shù)調整)循環(huán)體20for循環(huán)含義首先進行循環(huán)初始化,然后判斷循環(huán)條件,若循環(huán)條件成立則執(zhí)行循環(huán)體;(若不成立,則結束循環(huán))循環(huán)體執(zhí)行完后,再進行循環(huán)參數(shù)的調整,然后再進行循環(huán)條件判斷,若循環(huán)條件成立,則繼續(xù)執(zhí)行循環(huán)體(否則跳出循環(huán)),循環(huán)體執(zhí)行完進行循環(huán)參數(shù)的調整,然后再進行條件判斷,條件成立繼續(xù)執(zhí)行循環(huán)體,(否則跳出循環(huán)),……,直到跳出循環(huán)for循環(huán)含義首先進行循環(huán)初始化,然后判斷循環(huán)條件,若循環(huán)21關于for循環(huán)語句的幾點說明循環(huán)條件是一個邏輯表達式循環(huán)初始化和循環(huán)參數(shù)的調整都應當具有副作用循環(huán)體可以是復合語句,也可以是基本語句典型的for循環(huán)實例:for(inti=0;i<100;i+=5)cout<<i<<‘’;如果循環(huán)條件一開始就不成立,則循環(huán)體一次也不執(zhí)行循環(huán)初始化和循環(huán)參數(shù)的調整可以為空,相當于while循環(huán)循環(huán)條件為空意味著永真條件循環(huán)體為空,可用于延遲一段時間關于for循環(huán)語句的幾點說明循環(huán)條件是一個邏輯表達式22例:分析以下程序段的執(zhí)行結果for(intI=0;I<=20;I++)cout<<‘*’;分析:第1次:循環(huán)初始化I=0,判斷條件I<=20成立, 第一次執(zhí)行循環(huán)體,輸出第一個*;第2次:進行參數(shù)調整,I增1,I的值為1,條件 成立,執(zhí)行第二次循環(huán),輸出第二個*……第20次:I為19,循環(huán)條件成立,執(zhí)行循環(huán)體, 輸出第20個*號,然后I調整為20;第21次:I為20,循環(huán)條件成立,執(zhí)行循環(huán)體, 輸出第21個*,然后I調整為21;跳出循環(huán):I的值為21,循環(huán)條件I<=20不成立,跳出循環(huán)執(zhí)行結果:輸出21個*號例:分析以下程序段的執(zhí)行結果23例1:輸入10個數(shù),計算并顯示它們的合計#include<iostream.h>voidmain(){doublex,s=0;//x用于臨時保存輸入的數(shù)據(jù),s用于保存累加結果,稱s為累加器cout<<“請輸入10個數(shù):”;for(inti=0;i<10;i++){//循環(huán)10次,計算并累加10個數(shù)據(jù)cin>>x;s+=x;}cout<<“合計:”<<s;}例1:輸入10個數(shù),計算并顯示它們的合計#include<24例2:顯示并輸出如下所示的三角形:* 第0行:5空、1**** 第1行:4空、3****** 第2行:3空、5******** 第3行:2空、7********** 第4行:1空、9************ 第5行:0空、11*由以上得出:若行號為i,則應輸出的空格數(shù)為5-i,應輸出的*數(shù)為i+i+1程序如下頁:例2:顯示并輸出如下所示的三角形:* 第0行25#include<iostream.h>voidmain(){for(inti=0;i<6;i++){//循環(huán)6次,輸出6行cout<<endl;//每次循環(huán)換行,換6次,顯示6行intj;for(j=0;j<5-i;j++)cout<<‘’//每行輸出若干空格for(j=0;j<i+i+1;j++)cout<<‘*’//然后輸出若干‘*’}cout<<“合計:”<<s;}#include<iostream.h>26書本70頁例3.11顯示輸出99乘法表。請看書本自主學習注:setw(2)功能是為下一個要輸出的數(shù)據(jù)設置輸出寬度,,該設置只對下一個數(shù)據(jù)輸出有效。例如,cout<<1<<setw(8)<<2<<3;輸出:123setw(8)只對數(shù)據(jù)2有效,數(shù)據(jù)2占據(jù)8個字符寬度,且數(shù)據(jù)靠右顯示。書本70頁例3.11顯示輸出99乘法表。請看書本自主學習注:27while語句while(循環(huán)條件)循環(huán)體循環(huán)結構while循環(huán)結構示意循環(huán)條件循環(huán)體falsetruewhile語句while(循環(huán)條件)循環(huán)體循環(huán)結構whi28while循環(huán)含義先判斷循環(huán)條件,若條件成立,則執(zhí)行,循環(huán)體執(zhí)行完后往回判斷循環(huán)條件,若循環(huán)條件成立再執(zhí)行循環(huán)體,否則不執(zhí)行循環(huán)體,跳出循環(huán),循環(huán)體執(zhí)行完后再判斷循環(huán)條件,循環(huán)條件成立繼續(xù)執(zhí)行循環(huán)體,……直到跳出循環(huán)。循環(huán)條件中的參數(shù)的調整則通常在循環(huán)體或循環(huán)條件中進行while循環(huán)含義先判斷循環(huán)條件,若條件成立,則執(zhí)行,循環(huán)29例:分析以下循環(huán)語句執(zhí)行了幾次循環(huán) I=20; While(I>0)cout<<I--; //循環(huán)條件是:I>0 循環(huán)體是一個基本語句:cout<<I--;分析:第一次:I=20時,執(zhí)行第一次循環(huán),輸出I的值20,同時在cout<<I--時I的后減,調整成19,再判斷條件是否成立第二次:I=19時,條件成立,執(zhí)行循環(huán)體,同時I調整成18……第20次:I=1時,條件成立,執(zhí)行循環(huán)體,同時I調整成0,此時再判斷條件I>0不成立,不執(zhí)行循環(huán)體,跳出循環(huán)。因此循環(huán)共執(zhí)行了20次。例:分析以下循環(huán)語句執(zhí)行了幾次循環(huán)30do…while語句do循環(huán)體while(循環(huán)條件)循環(huán)結構do…while循環(huán)結構示意循環(huán)條件循環(huán)體falsetruedo…while語句do循環(huán)體while(循環(huán)條31do…while循環(huán)含義不判斷條件直接執(zhí)行一次循環(huán)體,循環(huán)體執(zhí)行完后,再判斷循環(huán)條件,若條件為真,則再次執(zhí)行循環(huán)體,(若條件不成立,則跳出循環(huán)),在第二次循環(huán)體執(zhí)行完后,繼續(xù)先判斷循環(huán)條件,條件滿足,則執(zhí)行循環(huán)體,……直到條件不滿足,跳出循環(huán)。do…while循環(huán)和while循環(huán)的區(qū)別do…while循環(huán)無論循環(huán)條件是否滿足,循環(huán)體至少執(zhí)行一次;然后再根據(jù)循環(huán)條件決定是否繼續(xù)執(zhí)行循環(huán)體;while循環(huán)循環(huán)條件不滿足則循環(huán)體一次也不執(zhí)行do…while循環(huán)含義不判斷條件直接執(zhí)行一次循環(huán)體,32I=1;While(I<=5)Cout<<I++;I=1;DoCout<<I++;While(I<=5)用do…while循環(huán)實現(xiàn)用while循環(huán)實現(xiàn)用兩種循環(huán)輸出相同的內容:輸出:12345用While循環(huán)與do…while循環(huán)等效:I=1;I=1;用do…while循環(huán)實現(xiàn)用while33I=6;While(I<=5)Cout<<I++;//循環(huán)體一次也沒執(zhí)行,因此無任何內容輸出I=6;DoCout<<I++;While(I<=5)//輸出5,循環(huán)體執(zhí)行了一次用do…while循環(huán)實現(xiàn)用while循環(huán)實現(xiàn)用While循環(huán)與do…while循環(huán)不等效:I=6;I=6;用do…while循環(huán)實現(xiàn)用while34練習:執(zhí)行IntI,s;For(I=8,s=0;I>0;I--)s+=I;//for循環(huán)8次實現(xiàn)s=8+7+…+1, 且I的值為0循環(huán)結束時,s的值為36While(++I<5)s+=I;//while循環(huán)4次,把1~4再加到s中,I的 值為5時循環(huán)結束,s的值為46后,s的值是()答案:46練習:35#include<iostream.h>#include<math.h>voidmain(){doubleA,B,C;

do{cout<<endl<<“請輸入一元二次方程的3個系數(shù)A,B,C,A不得為0:”;cin>>A>>B>>C;}while(A==0.0)//輸入3個系數(shù),當系數(shù)A為0時重新輸入cout<<endl;doubleDelta=B*B-4*A*C;//以下程序段根據(jù)Delta的值求方程的解If(Delta<0.0)cout<<“此方程沒有實數(shù)解”;elseif(Delta>0.0){cout<<“此方程有兩個不同的實數(shù)解”;cout<<(-B+sqrt(Delta))/(A+A);cout<<“和”<<(-B-sqrt(Delta))/(A+A);}elsecout<<“此方程有兩個相同的實數(shù)解”<<-B/(A+A);}#include<iostream.h>36break:continue:強制退出循環(huán),執(zhí)行下一條語句提前結束本輪循環(huán)體的執(zhí)行,判斷循環(huán)條件,提前進入下一輪循環(huán)說明:這兩個語句通常與if語句同時使用,形如:if(……)break;if(……)continue當if條件成立時,退出循環(huán)或提前結束本輪循環(huán)體的執(zhí)行循環(huán)特殊控制語句break:continue:強制退出循環(huán),執(zhí)行下一條語37例:允許反復地輸入半徑,計算并顯示圓面積,直到輸入的半徑是0時為止(即輸入0是終止程序運行的信號);若發(fā)現(xiàn)是輸入的半徑是負數(shù),提示操作者重新輸入。#include<iostream.h>#definePI3.1416voidmain(){doubleradius,area;while(ture){//永真條件,允許反復輸入半徑cout<<endl<<“請輸入圓的半徑:”;cin>>radius;if(radius==0.0)break;//半徑為0,則結束永真條件的循環(huán)的執(zhí)行if(radius<0.0){cout<<endl<<“輸入錯:半徑不能為負!”continue;//半徑為負,提前結束本次循環(huán),回到循環(huán)條件判斷, 重新執(zhí)行循環(huán)體,即重新輸入半徑}area=PI*radius*radius;//半徑為正數(shù)時不執(zhí)行以上兩條if語句, 直接求面積并輸出cout<<endl<<“圓的面積:”<<area;}例:允許反復地輸入半徑,計算并顯示圓面積,直到輸入的半徑是038演講完畢,謝謝觀看!演講完畢,謝謝觀看!39C++程序的流程控制第三章第三章40程序或程序模塊的三種基本結構順序結構條件分支結構循環(huán)結構通過安排語句的排列順序來決定程序流程由特定的條件決定執(zhí)行哪個語句的程序結構由特定的條件決定某個語句重復執(zhí)行次數(shù)的控制方式程序或程序模塊的三種基本結構順序結構條件分支結構循環(huán)結構通41順序結構按語句的先后順序依次執(zhí)行每一條語句語句1語句2順序結構示意順序結構按語句的先后順序依次執(zhí)行每一條語句語句1語句2順序42X=3;Y=4Z=X;X=YY=Z;程序段完成的功能是:交換X和Y的值例:X=3;例:43條件語句1語句2falsetrue語句格式:

If(條件)語句1else語句2

含義:如果條件成立,執(zhí)行語句1,否則執(zhí)行語句2流程示意:—If多分支結構一條件分支結構條件語句1語句2falsetrue語句格式:含義:流程示意:44條件語句truefalse語句格式:If(條件)語句含義:如果條件成立,執(zhí)行語句1,否則什么也不做(即跳出if語句的執(zhí)行,到下一第語句)流程示意:(無else子句)—If多分支結構二條件分支結構條件語句truefalse語句格式:If(條件)語句含義45例1:輸入2個數(shù),找出其中最大的一個并顯示出來。#include<iostream.h>voidmain(){inti,j;cout<<“請輸入2個整數(shù)”;cin>>i>>j;cout<<“2個數(shù)中最大的是:”;

if(i>=j)cout<<i<<endl;elsecout<<j<<endl;}條件分支結構例1:輸入2個數(shù),找出其中最大的一個并顯示出來。#inclu46例2:輸入3個數(shù),找出其中最大的一個并顯示出來。#include<iostream.h>voidmain(){inti,j,k;cout<<“請輸入3個整數(shù)”;cin>>i>>j>>k;cout<<“3個數(shù)中最大的是:”;

if(i<j)i=j;if(i<k)i=j;cout<<i<<endl;}兩條無else分支的語句例2:輸入3個數(shù),找出其中最大的一個并顯示出來。#inclu47例3:輸入3個數(shù),然后按從大到小的順序把它們顯示出來。#include<iostream.h>voidmain(){inti,j,k,p;cout<<“請輸入3個整數(shù)”;cin>>i>>j>>k;

if(i<j){p=i;i=j;j=p;}if(i<k){p=i;i=k;k=p;}if(j<k){p=j;j=k;k=p;}cout<<endl<<i<<‘’<<j<<‘’<<k;}例3:輸入3個數(shù),然后按從大到小的順序把它們顯示出來。#in48例4:P58,例3.5,請對照書本自主學習例4:P58,例3.5,請對照書本自主學習49If語句的嵌套語句中出現(xiàn)多個if和多個else時,首先必須進行配對,配對原則:從遇見的第一個else開始,else總與離它最近的if配對。在if語句的else前嵌套另一個if語句容易使所表達的邏輯關系難于理解,應加以避免,必要時把嵌套位置改為else之后條件分支結構If語句的嵌套語句中出現(xiàn)多個if和多個else時,首先必須50If多分支結構If多分支結構是一種通過規(guī)范化的if嵌套所構成的條件分支結構,在這種結構中if語句嵌套在else之后使用格式:if(條件1)語句1elseif(條件2)語句2elseif(條件3)語句3……elseif(條件n)語句nelse語句n+1條件分支結構If多分支結構If多分支結構是一種通過規(guī)范化的if嵌套所構成51例:輸入一個0~100分范圍內的一個成績,顯示相應的等級: 90~100——優(yōu) 80~89——良 70~79——中 60~69——及格 60分以下——不及格#include<iostream.h>voidmain(){floatscore;cout<<“請輸入成績”;cin>>score;

if(score<0||score>100)cout<<“成績必須在0~100之間”;elseif(score<60)cout<<“不及格”<<endl:elseif(score<70)cout<<“及格”<<endl;elseif(score<80)cout<<“中”<<endl;elseif(score<90)cout<<“良”<<endl;elsecout<<“優(yōu)”<<endl;}例:輸入一個0~100分范圍內的一個成績,顯示相應的等級:#52switch多分支結構

switch(整型表達式){case整型常量表達式1:語句序列1

case整型常量表達式2:語句序列2…case整型常量表達式k:語句序列k〖default:語句序列k+1〗}條件分支結構switch語句格式:switch多分支結構switch(整型表達式){條件分53switch語句的含義:通過判斷整型表達式的值,決定程序的去向:若整型表達式的值與整型常量表達式1的值相同,則依次執(zhí)行語句序列1開始的各個語句序列,即執(zhí)行語句序列1,語句序列2,……語句序列k,語句序列k+1若整型表達式的值與整型常量表達式2的值相同,則依次執(zhí)行開始的各個語句序列,即執(zhí)行語句序列2,……語句序列k,語句序列k+1依此類推……若整型表達式的值不等于任何列出的整型常量表達式的值,則執(zhí)行從default開始的語句序列若沒有default語句,則什么也不做。switch語句的含義:通過判斷整型表達式的值,決定程序的去54在依次執(zhí)行語句序列的過程中,如遇見break語句,則立即停止語句序列的執(zhí)行,跳出switch分支結構因此,若要讓分支結構只執(zhí)行與整型表達式匹配的整型常量表達式后的語句序列,而不往下執(zhí)行下面的語句序列,應在該語句序列后加一條break語句在每一個整型常量表達式后的語句序列后加break語句的switch分支結構,等同于if多分支結構。break語句在switch分支結構中的應用在依次執(zhí)行語句序列的過程中,如遇見break語句,則立即停止55例1:輸入一個表示星期的數(shù)字(0表示星期日,1表示星期二,……6表示星期六),顯示對應的英文單詞。#include<iostream.h>voidmain(){intweekday;cout<<“今天星期幾?”;cin>>weekday;switch(weekday){case0:cout<<“Sunday”<<endl;break;case1:cout<<“Monday”<<endl;break;case2:cout<<“Tuesday”<<endl;break;case3:cout<<“Wednesday”<<endl;break;case4:cout<<“Thursday”<<endl;break;case5:cout<<“Friday”<<endl;break;case6:cout<<“Saturday”<<endl;break;}//weekday的值為0時,顯示Sunday,break語句阻止了往下執(zhí)行輸出語句例1:輸入一個表示星期的數(shù)字(0表示星期日,1表示星期二,…56例2:輸入一個0~100分范圍內的一個成績,顯示相應的等級: 90~100——優(yōu) 80~89——良 70~79——中 60~69——及格 60分以下——不及格(用switch多分支結構實現(xiàn))#include<iostream.h>voidmain(){floatscore;cout<<“請輸入成績”;cin>>score;switch(int(score/10)){case0:case1:case2:case3:case4:case5:cout<<“不及格”<<endl;break;case6:cout<<“及格”<<endl;break;case7:cout<<“中”<<endl;break;case8:cout<<“良”<<endl;break;case9:case10:cout<<“優(yōu)”<<endl;break;default:cout<<“成績必須在0~100分之間”;}}例2:輸入一個0~100分范圍內的一個成績,顯示相應的等級:57例2說明:int(score/10)的值為0、1、2、3、4時分別執(zhí)行case0、case1、case2、case3、case4后的語句序列是空的,程序從這些入口點進入后,直接往下走,并在執(zhí)行完case5后的語句并遇見break語句時跳出switch分支。因此當值為0~5時均顯示“不及格”。case9后的語句為空,從case9進入后,直接往下執(zhí)行case10后的語句序列,遇見break語句時跳出switch分支。因此,值為9和10時均顯示“優(yōu)”。例2說明:int(score/10)的值為0、1、2、3、458循環(huán)結構for(循環(huán)初始化;循環(huán)條件;循環(huán)參數(shù)調整)循環(huán)體for語句循環(huán)初始化循環(huán)條件循環(huán)參數(shù)調整循環(huán)體falsetruefor循環(huán)結構示意循環(huán)結構for(循環(huán)初始化;循環(huán)條件;循環(huán)參數(shù)調整)循環(huán)體59for循環(huán)含義首先進行循環(huán)初始化,然后判斷循環(huán)條件,若循環(huán)條件成立則執(zhí)行循環(huán)體;(若不成立,則結束循環(huán))循環(huán)體執(zhí)行完后,再進行循環(huán)參數(shù)的調整,然后再進行循環(huán)條件判斷,若循環(huán)條件成立,則繼續(xù)執(zhí)行循環(huán)體(否則跳出循環(huán)),循環(huán)體執(zhí)行完進行循環(huán)參數(shù)的調整,然后再進行條件判斷,條件成立繼續(xù)執(zhí)行循環(huán)體,(否則跳出循環(huán)),……,直到跳出循環(huán)for循環(huán)含義首先進行循環(huán)初始化,然后判斷循環(huán)條件,若循環(huán)60關于for循環(huán)語句的幾點說明循環(huán)條件是一個邏輯表達式循環(huán)初始化和循環(huán)參數(shù)的調整都應當具有副作用循環(huán)體可以是復合語句,也可以是基本語句典型的for循環(huán)實例:for(inti=0;i<100;i+=5)cout<<i<<‘’;如果循環(huán)條件一開始就不成立,則循環(huán)體一次也不執(zhí)行循環(huán)初始化和循環(huán)參數(shù)的調整可以為空,相當于while循環(huán)循環(huán)條件為空意味著永真條件循環(huán)體為空,可用于延遲一段時間關于for循環(huán)語句的幾點說明循環(huán)條件是一個邏輯表達式61例:分析以下程序段的執(zhí)行結果for(intI=0;I<=20;I++)cout<<‘*’;分析:第1次:循環(huán)初始化I=0,判斷條件I<=20成立, 第一次執(zhí)行循環(huán)體,輸出第一個*;第2次:進行參數(shù)調整,I增1,I的值為1,條件 成立,執(zhí)行第二次循環(huán),輸出第二個*……第20次:I為19,循環(huán)條件成立,執(zhí)行循環(huán)體, 輸出第20個*號,然后I調整為20;第21次:I為20,循環(huán)條件成立,執(zhí)行循環(huán)體, 輸出第21個*,然后I調整為21;跳出循環(huán):I的值為21,循環(huán)條件I<=20不成立,跳出循環(huán)執(zhí)行結果:輸出21個*號例:分析以下程序段的執(zhí)行結果62例1:輸入10個數(shù),計算并顯示它們的合計#include<iostream.h>voidmain(){doublex,s=0;//x用于臨時保存輸入的數(shù)據(jù),s用于保存累加結果,稱s為累加器cout<<“請輸入10個數(shù):”;for(inti=0;i<10;i++){//循環(huán)10次,計算并累加10個數(shù)據(jù)cin>>x;s+=x;}cout<<“合計:”<<s;}例1:輸入10個數(shù),計算并顯示它們的合計#include<63例2:顯示并輸出如下所示的三角形:* 第0行:5空、1**** 第1行:4空、3****** 第2行:3空、5******** 第3行:2空、7********** 第4行:1空、9************ 第5行:0空、11*由以上得出:若行號為i,則應輸出的空格數(shù)為5-i,應輸出的*數(shù)為i+i+1程序如下頁:例2:顯示并輸出如下所示的三角形:* 第0行64#include<iostream.h>voidmain(){for(inti=0;i<6;i++){//循環(huán)6次,輸出6行cout<<endl;//每次循環(huán)換行,換6次,顯示6行intj;for(j=0;j<5-i;j++)cout<<‘’//每行輸出若干空格for(j=0;j<i+i+1;j++)cout<<‘*’//然后輸出若干‘*’}cout<<“合計:”<<s;}#include<iostream.h>65書本70頁例3.11顯示輸出99乘法表。請看書本自主學習注:setw(2)功能是為下一個要輸出的數(shù)據(jù)設置輸出寬度,,該設置只對下一個數(shù)據(jù)輸出有效。例如,cout<<1<<setw(8)<<2<<3;輸出:123setw(8)只對數(shù)據(jù)2有效,數(shù)據(jù)2占據(jù)8個字符寬度,且數(shù)據(jù)靠右顯示。書本70頁例3.11顯示輸出99乘法表。請看書本自主學習注:66while語句while(循環(huán)條件)循環(huán)體循環(huán)結構while循環(huán)結構示意循環(huán)條件循環(huán)體falsetruewhile語句while(循環(huán)條件)循環(huán)體循環(huán)結構whi67while循環(huán)含義先判斷循環(huán)條件,若條件成立,則執(zhí)行,循環(huán)體執(zhí)行完后往回判斷循環(huán)條件,若循環(huán)條件成立再執(zhí)行循環(huán)體,否則不執(zhí)行循環(huán)體,跳出循環(huán),循環(huán)體執(zhí)行完后再判斷循環(huán)條件,循環(huán)條件成立繼續(xù)執(zhí)行循環(huán)體,……直到跳出循環(huán)。循環(huán)條件中的參數(shù)的調整則通常在循環(huán)體或循環(huán)條件中進行while循環(huán)含義先判斷循環(huán)條件,若條件成立,則執(zhí)行,循環(huán)68例:分析以下循環(huán)語句執(zhí)行了幾次循環(huán) I=20; While(I>0)cout<<I--; //循環(huán)條件是:I>0 循環(huán)體是一個基本語句:cout<<I--;分析:第一次:I=20時,執(zhí)行第一次循環(huán),輸出I的值20,同時在cout<<I--時I的后減,調整成19,再判斷條件是否成立第二次:I=19時,條件成立,執(zhí)行循環(huán)體,同時I調整成18……第20次:I=1時,條件成立,執(zhí)行循環(huán)體,同時I調整成0,此時再判斷條件I>0不成立,不執(zhí)行循環(huán)體,跳出循環(huán)。因此循環(huán)共執(zhí)行了20次。例:分析以下循環(huán)語句執(zhí)行了幾次循環(huán)69do…while語句do循環(huán)體while(循環(huán)條件)循環(huán)結構do…while循環(huán)結構示意循環(huán)條件循環(huán)體falsetruedo…while語句do循環(huán)體while(循環(huán)條70do…while循環(huán)含義不判斷條件直接執(zhí)行一次循環(huán)體,循環(huán)體執(zhí)行完后,再判斷循環(huán)條件,若條件為真,則再次執(zhí)行循環(huán)體,(若條件不成立,則跳出循環(huán)),在第二次循環(huán)體執(zhí)行完后,繼續(xù)先判斷循環(huán)條件,條件滿足,則執(zhí)行循環(huán)體,……直到條件不滿足,跳出循環(huán)。do…while循環(huán)和while循環(huán)的區(qū)別do…while循環(huán)無論循環(huán)條件是否滿足,循環(huán)體至少執(zhí)行一次;然后再根據(jù)循環(huán)條件決定是否繼續(xù)執(zhí)行循環(huán)體;while循環(huán)循環(huán)條件不滿足則循環(huán)體一次也不執(zhí)行do…while循環(huán)含義不判斷條件直接執(zhí)行一次循環(huán)體,71I=1;While(I<=5)Cou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論