




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Visual C+程序設計,第3章 流程控制語句,C+語言是結構化的程序設計語言。采用結構化程序設計方法,可以使程序的邏輯結構清晰、可讀性好、可靠性強,從而提高程序的開發(fā)效率。 結構化程序設計是由三種基本結構表示的,即順序結構、選擇結構和循環(huán)結構。由這三種基本結構經過反復嵌套,可以實現各種算法。 函數是 C+程序的基本模塊,在這個基本模塊中,至少應包含上述的一種基本結構,或者是三種基本結構的復合,由此就構成了C+程序和結構化特征。,C+語言的結構化程序設計方法,3.2.1 if 語句 if條件語句有三種基本形式,簡單 if 形式、嵌套if.else形式和階梯elseif形式。簡單 if 形式: if(表達式) 語句塊; 功能:如果表達式的值為TRUE(非0),則執(zhí)行后邊的語句塊;否則不執(zhí)行表達式后面的詞句塊,而是繼續(xù)執(zhí)行整個if語句后面的語句。,選擇結構的功能是根據對條件的邏輯判斷,決定程序中相關流程的執(zhí)行路徑。C+語言為選擇結構提供了兩種語句:if條件語句和switch開關語句。,3.2 選擇結構,注意:if中的表達式可以是一個邏輯表達式、算術表達式、甚至是一個常量。,例:3.1 求輸入整數的絕對值。 #include void main( void ) int a, b; couta; b = a; if( b0 ) b = -b; cout“n“|“a“| = “b“n“; ,嵌套if.else形式: if(表達式) 語句塊1; else 語句塊2;,功能:如果表達的值為非0(TRUE),則執(zhí)行語句塊1,否則執(zhí)行語句塊2。最后執(zhí)行整個if.else語句后面的語句。,#include void main( ) int a, b; coutab; if(a!=b) if(ab) coutBn“; else cout“ABn“; else cout“A=Bn“; ,在此例中使用了ifelse形式,并且if.else語句中嵌套了另一個if.else語句。在ANSI標準中規(guī)定,編譯程序至少要支持15層嵌套。兩個else中第一個與內層if相配,第二個與外層if相配。在嵌套的if語句中,else總是與它最接近的if語句相配。,例3.2比較兩個輸入數的大小。,if(表達式1) 語句塊1; else if(表達式2) 語句塊2; else if(表達式3) . 語句塊3; . . else 語句塊n;,功能: 從表達式1開始,依次計算,如果某個表達式為非0(TRUE),則執(zhí)行該表達式后邊的語句塊,然后轉到整個if語句后面的語句。如果所有表達式的值都為0(FLASE),則執(zhí)行else后面的語句塊n;該結構中,最后一個else可以沒有,或者只有一個。,階梯型的else.if,#include void main( void ) int x, y, z, max; coutxyz; max = x; if(zy) if(zx) max = z; else if(yx) max = y; cout“max_num = “maxendl; ,if(zy) if(zx) max = z; else if(yx) max = y;,例3.3 從輸入的三個數中求最大的數。(含錯誤的程序),x, y, z,Max=x,Max=x,Max=z,Max=y,X, y, z,Max=x,Max=z,Max=y,Zy?,Zx?,Yx?,Zy?,Zx?,Yx?,F,T,F,T,T,T,T,F,F,F,Max=x,開關選擇語句又稱為多路分支語句,它根據一個量的多種不同可能,選擇執(zhí)行程序的某一個分支。,其一般形式如下: switch(表達式1) case 表達式2:語句塊1; break; case 表達式3:語句塊2; break; 。 case 表達式n:語句塊n; break; default: 語句塊n+1; break; ,3.2.2 switchcase開關選擇語句,執(zhí)行switch語句時,先計算括號內的值,然后,將其結果值與各個case語句中的常量值相比較,當與某個一致時,就執(zhí)行該case后面的語句塊,直到碰到break或者switch語句執(zhí)行完為止。若沒有一個常量與表達式的值相等,則執(zhí)行default語句。default是可選的,如果defualt不存在,并且所有的常量與表達式不相等,就不進行任何處理。,功能:,(1)switch語句中,表達式的類型必須是整形或字符形;如果使用字符形,C+將自動將其轉換成為整形,也就是實際使用的該字符所對應的ASCII值,對應的case也一樣。 (2)switch語句與if語句的不同之外在于,if語句可以計算關系表達式或邏輯表達式,而switch只能對等式進行測試。 (3)在同一個switch語句中,任意兩個case的表達式的值不允許相同。 (4)在switch語句中,break語句終止當前所在case的語句塊,并退出switch語句,否則將自動進入下一個case語句塊中。,注意:,#include void main(void) int i, flag = 1; couti; switch(i) case 1: ; case 2: ; case 3: flag = 0; break; case 4: flag = -1; case 5: cout“error = “flagendl; break; default:cout.put(char)i); ,程序說明: (1)每個case都可以有空語句。在這個例子中前三個case都執(zhí)行了同樣的語句: flag = 0; break; (2)如果break語句不存在,就將在下一個 case中繼續(xù)執(zhí)行。例中,如果i=4,那么flag=-1,由于沒有break語句,繼續(xù)執(zhí)行,這樣cout.put(char)i);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外科骨科試題及答案
- 通知考試題及答案
- 土壤學試題及答案
- 統(tǒng)計崗位轉正試題及答案
- 2025年城市公共服務設施完善合作協(xié)議
- 2025年臨時工就業(yè)協(xié)議規(guī)范文本
- 2025年魚類飼料大豆供應協(xié)議
- 2025年電子商務園區(qū)企業(yè)入住協(xié)議書范文
- 森林生態(tài)學基礎知識點歸納
- 文化遺產保護的社會共識與多元合作
- 2025年中考物理知識點歸納(挖空版)
- 硫化鉀測試報告范文
- 供水管道工程總承包EPC項目投標方案(技術標)
- 張愛玲愛情論文開題報告
- 2025-2030年中國IT分銷市場競爭格局規(guī)劃研究報告
- 2025年初中學業(yè)水平考試語文模擬試卷(四)
- 光伏項目監(jiān)理竣工報告模
- 康復骨折病例匯報
- 福建省普通高中2023年學業(yè)水平合格性考試數學試題(原卷版)
- 2024年安徽省初中學業(yè)水平考試生物試題含答案
- 2025年小學一年級數學下冊無紙筆化評價方案及檢測題
評論
0/150
提交評論