




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章選擇結構程序設計1精選課件第3章:選擇結構程序設計
前面已討論程序結構順序結構選擇結構循環(huán)結構本章討論下章討論2精選課件
控制語句用來實現一定的控制功能的語句稱為控制語句。C++語言用控制語句來實現選擇結構和循環(huán)結構。C++語言有九種控制語句??煞殖梢韵氯悾篿f()~else~switchfor()~while()~do~while()continuebreakgotoreturn分支循環(huán)輔助控制本章討論3精選課件3.1選擇結構的程序設計
1.if語句
簡單if語句形式
if(表達式)
語句;
格式:
執(zhí)行流程:語句表達式T例如:請用簡單if語句形式實現輸入兩個整數,輸出其中的大數。
if_else形式
if(表達式)
語句1;else
語句2;
格式:
執(zhí)行流程:表達式語句1語句2TFF例:請用if_else形式實現輸出兩個整數中的最大數。
4精選課件例如:下面的程序段是用簡單的if語句實現輸入兩個整數,輸出其中的大數。
inta,b,max;cout<<“請輸入兩個整數:”;cin<<a<<b;max=a;
if(max<b)max=b;cout<<max;例如:下面的程序段用if…else形式實現輸出兩個整數中的最大數。
inta,b,max;cout<<“請輸入兩個整數:”;cin<<a<<b;
if(a>b)
max=a;elsemax=b;cout<<max;5精選課件課堂練習編寫程序實現汽車超速判斷:要求從鍵盤輸入速度,然后判斷其是否超速。如果速度超過60,則顯示“超速”,否則顯示“正常”。
6精選課件1.if語句
if_else_if形式
if(表達式1)語句1;elseif(表達式2)語句2;elseif(表達式3)語句3;……elseif(表達式n)語句n;else語句n+1;
格式:
執(zhí)行流程:表達式1F表達式2表達式3FTFTTF表達式n語句n語句n+1T語句3語句2語句1例如:請編寫程序段實現判斷輸入字符的種類:數字、大寫字母、小寫字母或其他字符。
7精選課件例如:下面的程序段是判斷輸入字符的種類。
charc;cout<<“請輸入字符:”;cin>>c;if(c>='0'&&c<='9')cout<<"Thecharacterisadigit\n";
elseif(c>='A'&&c<='Z')cout<<"Thecharacterisacapitalletter\n";
elseif(c>='a'&&c<='z')cout<<"Thecharacterisalowerletter\n";else
cout<<"Thecharacterisothercharacter\n";8精選課件課堂練習1.編程實現根據輸入x的值,輸出y。x和y滿足數學分段函數關系如下:9精選課件課堂練習2.編程實現判斷成績的等級。根據輸入的成績,判斷輸出成績的等級:90分以上(包含90):A;80-89:B;70-79:C;60-69:D60分以下(不包含60):F。
10精選課件if語句注意事項
(1)if語句后面的表達式必須用括號括起來。
(2)表達式通常是邏輯表達式或關系表達式,但也可以是其它任何表達式,如賦值表達式等,甚至也可以是一個變量。只要表達式非零時,表達式的值就為真,否則就是假。
(3)在if語句的三種形式中,所有的語句應為單個語句,如果要想在滿足條件時執(zhí)行一組(多個)語句,則必須把這一組語句用{}括起來組成一個復合語句。但要注意的是在}之后不能再加分號。
(4)在if語句中,如果表達式是一個判斷兩個數是否相等的關系表達式,要當心不要將==寫成了賦值運算符=。例:ifx>0cout<<“x>0”;例:if(x>0)cout<<“x>0”;
if(a=5)語句;
//表達式的值永遠為非0,所以其后的語句總是要執(zhí)行的
if(b)語句;
//等價于if(b!=0)語句;例:if(a>b)a++;b++;else{a=0;b=1;}例:if(a>b){a++;b++;}else{a=0;b=1;}例:
#include<iostream>usingnamespacestd;voidmain(){intx=0;if(x==0)cout<<“x=0\n”;elsecout<<“x!=0\n”;}例:
#include<iostream>usingnamespacestd;voidmain(){intx=0;if(x=0)cout<<“x=0\n”;elsecout<<“x!=0\n”;}運行結果:x=0運行結果:x!=011精選課件
if(……)if(……)if(……)else……else……else……
C++語言規(guī)定,在缺省{}時,else總是和它上面離它最近的未配對的if配對例:
#include<iostream>usingnamespacestd;voidmain(){inta=1,b=-1;
if(a>0)
if(b>0)
a++;
else
a--;cout<<"a=%d\n";}例:#include<iostream>usingnamespacestd;voidmain(){inta=1,b=-1;
if(a>0)
{if(b>0)a++;}else
a--;cout<<"a=%d\n";
}運行結果:a=0運行結果:a=1if_else配對原則12精選課件例輸入兩數并判斷其大小關系
#include<iostream>usingnamespacestd;
voidmain(){intx,y;cout<<"Enterintegerx,y:";cin>>x>>y;if(x!=y)if(x>y)cout<<"X>Y\n";elsecout<<"X<Y\n";elsecout<<"X==Y\n";}運行結果:
Enterintegerx,y:12,23
X<Y
Enterintegerx,y:12,6
X>YEnterintegerx,y:12,12
X==Y13精選課件if語句嵌套:
一般形式:if(expr1)
if(expr2)statement1elsestatement2else
if(expr3)statement3elsestatement4內嵌if內嵌ifif(expr1)
if(expr2)statement1elsestatement2內嵌ifif(expr1)
if(expr2)statement1elsestatement3
內嵌ifif(expr1)statement1else
if(expr3)statement3elsestatement4內嵌if14精選課件課堂練習2.編寫程序實現:從鍵盤接收3個數,并從小到大輸出。1.編寫程序實現:從鍵盤接收3個數,輸出最大的數。15精選課件2.switch語句(開關分支語句)一般形式:switch(表達式){caseE1:
語句組1;break;caseE2:
語句組2;break;…….caseEn:
語句組n;break;[default:
語句組;break;]}
執(zhí)行過程:switch表達式語句組1語句組2語句組n語句組…...E1case
E2case
Encase
defaultcase
16精選課件
使用switch語句注意事項(1)switch后面的“表達式”,可以是int、char和枚舉型中的一種,但不可為浮點型。floata,b=4.0;cin>>a;switch(a){case1:b=b+1;break;case2:b=b-1;break;}cout<<“b=“<<b;不可為浮點型表達式17精選課件inta,b=4;cin>>a;switch(a){case1:b=b+2;break;case2:b=b*2;break;case1:b=b+2;break;}cout<<"b=",b);
使用switch語句注意事項(2)case后面語句(組)可加{}也可以不加{},但一般不加{}。
(3)每個case后面“常量表達式”的值,必須各不相同,否則會出現相互矛盾的現象。switch(i){case1:{b=b+1;break;}//{}可加可不加
case2:b=b-1;break;}case1在前面已使用18精選課件課堂練習1:
使用switch語句按照考試成績的等級打印出百分制分數段。
成績等級對應的分數段如下:A:90-100;B:80-89;C:70-79;D:60-69;F:59以下;19精選課件
使用switch語句注意事項(4)每個case后面必須是“常量表達式”,表達式中不能包含變量。
例:按成績分成A、B、C、D、E、F幾個等級。
charscore;cout<<"EnterScore:";cin>>score;switch(score){casescore>=90:cout<<"A";break;casescore>=80&&score<90:
cout<<"B";break;casescore>=70&&score<80:
cout<<"C";break;casescore>=60&&score<70:
cout<<"E";break;default:cout<<"F";break;}case后面包含變量20精選課件課堂練習2.
寫程序實現輸入一個整數,如果分數為:90-100輸出“A”;80-89輸出“B”;70-79輸出“C”;60-69輸出“D”;59以下輸出“F”;
其它,輸出“輸入錯誤”。21精選課件
使用switch語句注意事項(5)多個case子句,可共用同一語句(組)。
例:當a的值是1、2、3時,將b的值加2,當a的值是4、5、6時,將b的值減2。
inta,b=4;cin>>a;switch(a){case1:case2:case3:b+=2;break;case4:case5:case6:b-=2;break;default:b*=2;break;}cout<<"b=“<<b;22精選課件
使用switch語句注意事項(6)case后面的“常量表達式”僅起語句標號作用,并不進行條件判斷。系統一旦找到入口標號,就從此標號開始執(zhí)行,不再進行標號判斷,所以必須加上break語句,以便結束switch語句。
voidmain(){charch;ch=getch();switch(ch){case'Y':printf("Yes\n");break;case'N':printf("No\n");break;case'A':printf("All\n");break;default:printf("Yes,NoorAll\n");}}運行結果:
No//假設輸入為:Nvoidmain(){charch;ch=getch();switch(ch){case'Y':printf("Yes\n");break;case'N':printf("No\n");case'A':printf("All\n");break;default:printf("Yes,NoorAll\n");}}//假設輸入為:N運行結果:
NoALL23精選課件
使用switch語句注意事項(7)case子句和default子句如果都帶有break子句,那么它們之間順序的變化不會影響switch語句的功能。#include<iostream>usingnamespacestd;voidmain(){charch;cin>>ch;switch(ch){case'Y':cout<<"Yes\n";break;case'N':cout<<"No\n";break;case'A':cout<<"All\n";break;
default:cout<<"Yes,NoorAll\n";break;}}#include<iostream>usingnamespacestd;voidmain(){charch;cin>>ch;switch(ch){case'Y':cout<<"Yes\n";break;
default:cout<<"Yes,NoorAll\n";break;case'N':cout<<"No\n";break;case'A':cout<<"All\n";break;}}24精選課件
使用switch語句注意事項(8)case子句和default子句如果有的帶有break子句,而有的沒有帶break子句,那么它們之間順序的變化可能會影響輸出的結果。
#include<iostream>usingnamespacestd;intmain(){charch;cin>>ch;switch(ch){case'Y':cout<<"Yes\n";break;case'N':cout<<"No\n";break;case'A':cout<<"All\n";break;
default:cout<<"Yes,NoorAll\n";}}#include<iostream>usingnamespacestd;intmain(){charch;cin>>ch;switch(ch){case'Y':cout<<"Yes\n";break;
default:cout<<"Yes,NoorAll\n");case'N':cout<<"No\n";break;case'A':cout<<"All\n";break;}}//假設輸入為:B運行結果:Yes,NoorAll運行結果:Yes,NoorAllNo//假設輸入為:B25精選課件
使用switch語句注意事項(9)switch語句可以嵌套。
voidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y)
{case0:a++;break;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 62024-2:2024 RLV EN High frequency inductive components - Electrical characteristics and measuring methods - Part 2: Rated current of inductors for DC-to-DC converters
- 2025-2030年中國鑄造機械制造行業(yè)運營狀況與發(fā)展前景分析報告
- 2025-2030年中國金屬波紋管市場發(fā)展趨勢規(guī)劃研究報告
- 2025-2030年中國聚氨酯慢回彈海綿女性內衣市場運營狀況及發(fā)展規(guī)劃分析報告
- 2025-2030年中國綜合肺功能測定儀市場發(fā)展狀況及投資策略研究報告
- 2025-2030年中國純鋯珠行業(yè)運行現狀及發(fā)展前景分析報告
- 2025-2030年中國礦渣粉行業(yè)運營格局及發(fā)展趨勢分析報告
- 2025-2030年中國真空搬運機械行業(yè)競爭格局及發(fā)展趨勢分析報告
- 2025-2030年中國盆景行業(yè)競爭狀況規(guī)劃研究報告
- 濮陽職業(yè)技術學院《藥物合成實驗》2023-2024學年第二學期期末試卷
- 文化產業(yè)管理專業(yè)大學生職業(yè)生涯規(guī)劃書
- DSM-V美國精神疾病診斷標準
- 文獻的載體課件
- 2023年高考語文全國乙卷《長出一地的好蕎麥》解析
- 混凝土強度回彈檢測方案
- 歷年中考地理生物變態(tài)難題
- 研學旅行課程標準(一)-前言、課程性質與定位、課程基本理念、課程目標
- 部編版二年級下冊語文教案全冊
- 解放牌汽車CA10B后鋼板彈簧吊耳加工工藝及夾具設計哈
- 大學??啤稒C電傳動控制》課件
- 高中地理高清區(qū)域地理填圖冊
評論
0/150
提交評論