《选择判断》PPT课件.ppt_第1页
《选择判断》PPT课件.ppt_第2页
《选择判断》PPT课件.ppt_第3页
《选择判断》PPT课件.ppt_第4页
《选择判断》PPT课件.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第四章,選擇判斷(Decision),2,大綱,4.1 if 單一選擇 4.2 ifelse雙重選擇 巢狀ifelse 巢狀ifelse if else if 4.3 switch.case 多重選擇 4.4 break,continue 之用途,3,4.1 if 單一選擇,格式1: 單一敘述 if ( 條件式 ) 敘述; 格式2: 多敘述 if ( 條件式 ) 敘述1; 敘述2; 條件式為真則執行敘述式;否則不執行。,條件式,敘述,下一敘述,0,1,4,#include /cout using namespace std; int main( ) int a,b,c,max; cout a b c; max=a; /以a當最大 if (b max) /max與b比較 max = b; if (c max) /max與c比較 max = c; cout“最大值為“maxendl; return 0; ,例題: 任意輸入a,b,c三個數,求此三數之最大值後輸出。,5,例題: 輸入三角形三邊長,判斷該三邊長可否構成一三角形,若可以則求其面積後輸出。,#include /cout using namespace std; int main( ) float a,b,c,area,s; cout a b c; if (a+bc ,6,例題: 任意輸入a,b,c三數,將此三數由小到大排序後輸出。,#include /cout using namespace std; int main( ) short a,b,c,t; cout a b c; cout b) /若ab則互換 t = a; a = b; b = t; if (b c) /若bc則互換 t = b; b = c; c = t; if (a b) /若ab則互換 t = a; a = b; b = t; cout“排序後:“a,b,cendl; return 0; ,7,4.2 ifelse雙重選擇,格式: if (條件式) 敘述1; else 敘述2; (條件式) ?敘述1; : 敘述2; 條件式為真則執行敘述1;否則執行敘述2。,條件式,敘述1,敘述2,下一敘述,0,1,8,例題: 輸入分數(0-100),若大於等於60分則印出”及格”,否則印出”不及格”。,#include /cout using namespace std; int main( ) int score; cout score; if (score=60) cout “及格”; else cout “不及格”; cout endl; return 0; ,9,4.2.1 巢狀ifelse,巢狀的ifelse是一層又一層的判斷 if內有if或ifelse else內有if或ifelse 每一層內可能為單一敘述或多個敘述 該層敘述被執行就結束 不具重複性,10,巢狀ifelse之流程圖,條件1,條件2,敘述1,敘述3,敘述2,敘述4,下一敘述,1,1,0,0,if (條件1) 敘述1; if (條件2) 敘述2; else 敘述3; else 敘述4;,11,例題:,#include /cout using namespace std; int main( ) int price; cout price; if (price 1000) if ( price 500) cout “Buy this” endl; else cout “Ask Mother” endl; else cout “ Donot buy this” endl; return 0; ,12,if (條件1) 敘述1; else if (條件2) 敘述2; else if (條件3) 敘述3 else 敘述4; 1. (條件1)為真時執行(敘述1) 。 2. (條件1)為假且(條件2)為真時執行(敘述2) 。 3. (條件1)為假且(條件2)為假且(條件3)為真時執行(敘述3) 。 4. (條件1)為假且(條件2)為假且(條件3)為假時執行(敘述4) 。,4.2.2 巢狀ifelse ifelse,13,if else if else之流程圖,條件一,條件二,條件三,敘述一,敘述二,敘述三,下一敘述,1,1,1,0,0,0,敘述四,例題: 用亂數函數產生任一整數,再自鍵盤輸入數字進行猜數字遊戲,若猜得太大則輸出提示太大了,否則輸出太小了,若5次以內猜對,則輸出”你很聰明”。,#include /cout #include /rand() using namespace std; int main( ) int i, num; srand(time(NULL); /設定亂數種子 i= rand()%100; /產生099亂數 cout num; if(num i) cout “太大了!”; else if(num = i) cout “你猜對了!共猜了 ” cnt “次! ” endl; break; else cout “太小了!”; if(cnt 5) cout “你很聰明喔!” endl; return 0; ,15,格式 switch (變數或表示式) case 常數1: 敘述; break; case 常數2: 敘述; break; case 常數3: 敘述; break; default: 敘述; 變數或表示式最後之資料型態需為字元char或整數integer資料。,4.3 switch.case 多重選擇,16,switch.case之流程圖,case 1,case 2,case 3,default,常數1,常數2,常數3,.,敘述1,敘述2,敘述3,敘述,break;,break;,break;,下一敘述,1,1,1,0,0,0,17,例題: 任意輸入一個數字(09)並將其轉為國字(零玖)。,#include /cout using namespace std; int main( ) int n; cout n; switch (n) case 0: cout“零”; break; case 1: cout“壹”; break; case 2: cout“貳”; break; case 3: cout“參”; break; case 4: cout“肆“; break; case 5: cout“伍”; break; case 6: cout“陸”; break; case 7: cout“柒”; break; case 8: cout“捌”; break; case 9: cout“玖”; break; return 0; ,18,4.4 break,continue 之用途,break(中斷): 跳出迴圈之工作。 continue(繼續): 繼續迴圈上層之敘述。,break,continue,19,例題: 輸入除數與被除數求商與餘數,若除數為0則重新要求輸入。,#include /cout using namespace std; int main( ) long divisor, dividen; char ch; do cout divisor; cout dividen; if (divisor=0) cout ch; while (ch!=n ); return 0; ,20,習題,撰寫一個程式輸入6位整數密碼,再輸入6位整數確認密碼 ,並輸出密碼正確或密碼不正確,請重新輸入。 利用(1) if ;(2) if else,撰寫一個程式:任意輸入一個整數分數(0 100),並判斷是否及格(大於等於60印出passed;否則印出failed)。 利用if else,撰寫一個程式:任意輸入一整數分數(0 100),並判斷成績等級。(100分印出A;9099印出B;80 89印出C;70 79印出D;60 69印出E;60以下印出F) 試寫一程式,由鍵盤輸入用水量,然後依據下表求初應繳的水費,其基本水費為90元。(10度以下,每度10元;1120度,每度12元;2140度,每度15元; 4150度,每度18元; 50度以上,每

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论