版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C 語言程序設計基礎篇,第 7 章 簡單程序設計之二,1,2020年7月26日,本章內容提要,多分支選擇結構switch語句 循環(huán)嵌套 break語句和continue語句 程序舉例,2,2020年7月26日,教學目標,在三種基本結構的基礎上,結合本章介紹流程控制的其他幾個語句:switch語句、break語句和continue語句及循環(huán)的嵌套,實現(xiàn)復雜的算法,設計出結構清晰、功能強大的程序,對C語言程序開發(fā)設計有比較深刻的認識。,3,2020年7月26日,7.1 多分支選擇結構程序設計,1、語句形式:,switch (表達式) case 常量1: 語句1; case 常量2: 語句2; ca
2、se 常量3: 語句3; . case 常量n: 語句n; default : 語句n+1; ,根據(jù)表達式的不同值,選擇不同的程序分支,又稱開關語句。,數(shù)值型 或 字符型,常量表達式的值必須互不相同,否則執(zhí)行時將出現(xiàn)矛盾,即同一個開關值,將對應多種執(zhí)行方案。,4,2020年7月26日,2、語句執(zhí)行流程:,指語句的最后一條是否為break,簡單語句或復合語句,case語句出 現(xiàn)的次序并 不影響執(zhí)行 結果。,5,2020年7月26日,void main() int n; printf(請輸入成績:); scanf(%d, ,【例7.1】編寫程序,對學生成績進行等級評定。將成績分為幾個等級:059分
3、為不及格,6069分為及格,7079分為中等,8089分為良好,90100分為優(yōu)秀。要求輸入一個成績,輸出其對應的等級。,請輸入成績:78 成績78的等級為中等 成績78的等級為及格 成績78的等級為不及格,出錯啦???,6,2020年7月26日,在“switch”語句中,“case 常量表達式”只相當于一個語句標號,表達式的值和某標號相等則轉向該標號執(zhí)行,但不能在執(zhí)行完該標號的語句后自動跳出整個switch 語句,因此會繼續(xù)執(zhí)行所有后面語句的情況。 為此,語言提供了一種break語句,其功能是可以跳出它所在的switch語句。,7,2020年7月26日,將上面的例7.1修改如下:,void m
4、ain() int n; printf(請輸入成績:); scanf(%d, ,請輸入成績:78 成績78的等級為中等,8,2020年7月26日,使用switch語句時還應注意以下幾點,switch后面圓括號內表達式的值和case語句中常量表達式的值,都必須是整型的、枚舉型的或字符型的,不允許是浮點型的。在case后的各常量表達式的值不能相同。 每個case子句既可以是一條語句,也可以是多條語句。當是多條語句時,不需要用花括號括起來。 各個case子句和default子句的先后順序可以變動,而不會影響程序執(zhí)行結果。 default子句可以省略不用。 多個case的后面可以共用一組執(zhí)行語句 。如
5、例7.1中等級為優(yōu)秀的判斷程序可改為:,9,2020年7月26日,switch(int)(n/10) case 10: case 9: printf(成績%d的等級為優(yōu)秀n); break; ,10,2020年7月26日,7.2 嵌套循環(huán)結構程序設計,在一個循環(huán)內又完整地包含另一個循環(huán),稱為循環(huán)的嵌套。for語句可以與while語句、do-while語句相互嵌套,構成多重循環(huán),例如:,11,2020年7月26日,(1) (2) for() do while() for() while(); (3) (4) while() for() for() for() ,12,2020年7月26日,for
6、 (i=1;i=9;i+) 打印第i行; ,【例7.2】打印乘法小九九表。,使用一個循環(huán)9次的循環(huán)語句,每次循環(huán)打印一行:,打印第i行,循環(huán)i次,每次循環(huán)打印一個表達式:,for (j=1;j=i;j+) 打印第j個表達式; ,打印完一行后換行,13,2020年7月26日,#include void main() int i,j; for (i=1;i=9;i+) for (j=1;j=i;j+) printf(%d*%d=%-3d,i,j,i*j); printf(n); ,程序運行情況如下: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4
7、*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81,14,2020年7月26日,【例7.3】百雞問題。,#includestdio.h void
8、main() int x,y,z; for(x=1;x=20;x+) /*用嵌套的for循環(huán)依次設公雞有1,2,20只*/ for(y=1;y=33;y+) /*設母雞有1,2,33只*/ for (z=3;z100;z+=3) /*設小雞有3,6,99只*/ if (x*5+y*3+z/3=100 ,程序運行結果如下: 公雞4只、母雞18只、小雞78只 公雞8只、母雞11只、小雞81只 公雞12只、母雞4只、小雞84只,15,2020年7月26日,7.3 break語句和continue語句在循環(huán)中的應用,break語句只能用在switch語句或循環(huán)語句中,其作用是跳出switch語句或跳出
9、本層循環(huán),轉去執(zhí)行后面的程序。由于break語句的轉移方向是明確的,所以不需要語句標號與之配合。break語句的一般形式為 break; 注意: break語句對if-else的條件語句不起作用。 在多層循環(huán)中,一個break語句只向外跳一層。 使用break語句可以使循環(huán)語句有多個出口,16,2020年7月26日,continue 語句,continue語句只能用在循環(huán)體中,其一般格式是: continue; 其語義是:結束本次循環(huán),即不再執(zhí)行循環(huán)體中continue 語句之后的語句,轉入下一次循環(huán)條件的判斷與執(zhí)行。應注意的是,本語句只結束本層本次的循環(huán),并不跳出循環(huán)。 continue語句
10、只用在for、while、do-while等循環(huán)體中,常與if條件語句一起使用,用來加速循環(huán)。 1) while(表達式1) if(表達式2)break; ,2) while(表達式1) if(表達式2)continue; ,17,2020年7月26日,18,2020年7月26日,【例7.4】輸出100以內能被7整除的數(shù)。,#include stdio.h void main() int n; for(n=1;n=100;n+) if (n%7!=0) continue; printf(%d ,n); printf(n); ,程序運行情況如下: 7 14 21 28 35 42 49 56 6
11、3 70 77 84 91 98,19,2020年7月26日,【例7.5】判斷m是否素數(shù),#include #include int main() int m, i, k; scanf(%d, ,20,2020年7月26日,7.4 程序舉例 【例7.6】模擬自動飲料機,#include stdio.h void main() int button; printf(=自動飲料機=n); printf(1.可口可樂n); printf(2.雪碧n); printf(3.百事可樂n); printf(4.芬達n); printf(5.非??蓸穘); printf(請按15鍵選擇飲料:n); scan
12、f(%d,21,2020年7月26日,switch(button) case 1: printf(n你獲得一聽可口可樂n); break; case 2: printf(n你獲得一聽雪碧n); break; case 3: printf(n你獲得一聽百事可樂n); break; case 4: printf(n你獲得一聽芬達n); break; case 5: printf(n你獲得一聽非??蓸穘); break; default: printf(n非法操作!n); ,程序運行情況如下: =自動飲料機= 1可口可樂 2雪碧 3百事可樂 4芬達 5非??蓸?請按15鍵選擇飲料: 3 你獲得一聽百
13、事可樂,22,2020年7月26日,【例7.10】數(shù)組元素排序冒泡排序(以升序為例),排序過程: 比較第一個數(shù)與第二個數(shù),若為逆序a0a1,則交換;然后比較第二個數(shù)與第三個數(shù);依次類推,直至第n-1個數(shù)和第n個數(shù)比較為止第一趟冒泡排序,結果最大的數(shù)被安置在最后一個元素位置上 對前n-1個數(shù)進行第二趟冒泡排序,結果使次大的數(shù)被安置在第n-1個元素位置 重復上述過程,共經過n-1趟冒泡排序后,排序結束,23,2020年7月26日,例,38,49,76,97,13,97,27,97,30,97,13,76,76,76,27,30,13,65,27,65,30,65,13,13,49,49,30,49,27,38,27,38,30,38,24,2020年7月26日,#include main() int a10,i,j,t; printf(Input 10 numbers:n); for(i=0;iaj+1) t=aj; aj=aj+1; aj+1=t; printf(The sorted numbers:n); for(i=0;i10;i+) printf(%d ,ai); ,25,2020年7月26日,【例7.11】數(shù)組元素排序選擇排序(以升序為例),排序過程: 首先通過n-1次比較,從n個數(shù)中找出最小的, 將它與第一個數(shù) 交換第一趟選擇排序,結
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學教學質量保證措施制度
- 養(yǎng)老院入住老人休閑娛樂設施管理制度
- 2026湖北郴州莽山旅游開發(fā)有限責任公司招聘9人參考題庫附答案
- 2026福建南平市醫(yī)療類儲備人才引進10人參考題庫附答案
- 2026福建省面向武漢大學選調生選拔工作參考題庫附答案
- 2026貴州六盤水博信科創(chuàng)中心有限責任公司招聘參考題庫附答案
- 2026重慶涪陵區(qū)人力資源和社會保障局招聘1人參考題庫附答案
- 226湖南郴州市宜章縣婦幼保健院招募見習生2人備考題庫附答案
- 公務員考試語句表達真題300道及參考答案(綜合題)
- 北京市大興區(qū)司法局招聘臨時輔助用工1人考試備考題庫附答案
- 股東合作協(xié)議出資協(xié)議書
- (高清版)DB31∕T 1578-2025 微型消防站建設與運行要求
- 環(huán)境工程污水處理技術題庫
- 中醫(yī)專業(yè)教學標準(中等職業(yè)教育)2025修訂
- 鐵路項目部管理制度
- 物流倉儲設備 檢查與維護規(guī)程 第1部分:巷道堆垛機 征求意見稿
- 機構學歷提升合同范本
- 先天性毛細血管擴張性大理石樣皮膚科普宣傳
- 國網 35kV~750kV輸電線路基礎通 用設計模塊清單(試行) 2024
- 2025內河散裝運輸液化氣體船舶構造與設備規(guī)范
- 刮刮樂營銷培訓
評論
0/150
提交評論