第三章、-控制程式的行为讲解课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第三章、-控制程式的行为讲解课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 控制 程式 行为 讲解 课件
- 资源描述:
-
1、1 Java2語言實務 第三章、控制程式的行為控制程式的行為本章大綱、判斷敘述、判斷敘述、迴圈敘述、迴圈敘述、分支敘述、分支敘述、函式呼叫、函式呼叫2 Java2語言實務 循序敘述與控制敘述循序敘述與控制敘述q 但真正在使用的程式,幾乎每一個都會需要透過特定的敘述(Statement)要求程式做執行順序的改變。不會要求改變流程的敘述,稱為”循序敘述循序敘述”。如宣告,加減運算等;會改變流程的敘述稱為”控制敘述控制敘述”。q Java的控制敘述:判斷判斷(Decision)(Decision)是用來判斷當某個條件成立時,執行對應的程式處執行,例如,考試成績大於60分為及格,則印出及格訊息;迴圈(
2、迴圈(LoopingLooping)是用來表達可重複性的動作,比如說作1加到100的動作,連續加99次;分支(分支(BranchBranch)是用在如中斷迴圈並跳出的情形;副程式呼叫(副程式呼叫(Function CallFunction Call)是將常用的程式段獨立出來,在需要時跳至該處執行後,再回原處繼續執行,如此可以簡化程式的設計,是程式設計常用到的技術。3 Java2語言實務 控制敘述表 語法種類 關鍵字(一)判斷(Decision)if,if-else,switch-case (二)迴圈(Looping)while,do-while,for (三)分支(Branch)break,c
3、ontinue,return (四)副程式呼叫(Function Call)function name();4 Java2語言實務 、判斷敘述、判斷敘述5 Java2語言實務 3-1判斷敘述:if及if-else,switch-case在真實世界中,我們常常要面對許多根據條件作判斷(DecisionDecision)結果,執行不同動作的情形。Java三種判斷敘述的分類:判斷情形關鍵字單執行條件判斷敘述if 雙執行條件判斷敘述if-else 多重條件判斷敘述if-elseif,switch-case 6 Java2語言實務 (1)(1)單執行條件判斷敘述單執行條件判斷敘述 ifif當程式執行到i
4、f判斷運算式時,會根據條件判斷,若結果為真(true),執行運算式;若結果為假(false),則不執行。【語法】if(if(條件運算式條件運算式)運算式運算式;判斷運算式運算式圖3-1 if語法流程圖truefalse7 Java2語言實務 【語法說明-大括號存在的差異性】請注意if 中運算式,可以是單一敘述也可以是加上大括弧的一連串運算式集合完成較複雜的功能。在多行敘述時要,以指定運算式敘述的範圍,否則運算式的範圍會誤為只有一行,圖3-2說明運算集合中大括號存在的差異性。8 Java2語言實務 圖3-2 運算集合中大括號存在的差異性圖x5y=y-1z=z+3x5y=y-1z=z+3turef
5、alseturefalse圖3-2 運算集合中大括號存在的差異性x=3;if(x5)y=y-1;z=z+3;x=3;if(x5)y=y-1;z=z+3;(無大括號)(有大括號)9 Java2語言實務 Ex3_1_1【大括號存在的差異性範例3-1】3-1 Demoif.javaclass Demoif public static void main(String args)int x;int y;int z;x=2;y=1;z=3;if(x5)y=y-1;z=z+3;System.out.println(x=+x+,y=+y+,z=+z);【執行結果】x=2,y=0,z=6【說明】第46行 in
6、t x;int y;int z;三行程式宣告三個整數變數的名稱分別為x、y、z。第810行x=2;y=1;z=3;為設定x、y、z的值分別為整數2、1、3。第12行if(xy)08.z=y;09.y=x;10.x=z;11.12.System.out.println(“After swap:x=+x+,y=+y,z=+z);13.14.執行結果Before swap:x=2,y=1After swap:x=1,y=211 Java2語言實務 第 35 行宣告三個整數變數 x、y、z 並設定其值分別為 2、1、0。第 79 行判斷 x 值是否大於 y,若判斷的結果為 true,程式會進入 if
7、後由大括號所包含的運算式,依序執行 z=y;y=x;x=z;三行敘述,這三行敘述是典型 x、y 兩個變數內容互換的寫法,其中 z 變數式當作中間暫存值,將 y 的值先保留下來。所以當執行 y=x 後才能將原來的值由 z 變數再設定給 x 變數。第 12 行使用 System.out.println()分別列印 x、y 的值至螢幕上。12 Java2語言實務 (2)雙條件判斷 if-else雙條件判斷if-else:也包含了條件“不成立”時所要執行的另一個運算式。當if判斷結果為true時,程式會執行if之後的運算式部分;當if判斷結果為false時,程式會執行else之後的運算式部分。【語法【
8、語法】if(if(條件運算式條件運算式)執行運算式一執行運算式一;elseelse執行運算式二執行運算式二;判斷運算式運算式一運算式二圖3-3 if-else語法流程圖truefalse14 Java2語言實務 Ex3_1_3(1)若有一個程式在開始時設定一個整數代表考試的成績,若成績大於60分則螢幕顯示及格訊息;若小於六十分則螢幕顯示不及格訊息。score60設定成績印出及格訊息圖3-4 成 績評等程式流程圖turefalse印出不及格訊息開始結束Ex3_1_3(2)3-2 DemoPass.java3-2 DemoPass.javaclass DemoPass public static
9、void main(String args)int score;score=75;if(score=60)System.out.println(You passed the test!);else System.out.println(You did not pass the test!);【執行結果】You passed the test!16 Java2語言實務 Ex3_1_3範例說明q 第34行:int score;score=75;首先宣告名稱為score的整數變數,並設定其值為75;q 第611行if(score=60)System.out.println(You passed th
10、e test!);else System.out.println(You did not pass the test!);q 判斷成績是否大於或等於60分,q 若結果為true,則執行System.out.println(“You passed the test!”);印出及格訊息;q 若結果為false,印出不及格訊息,在範例中score的值為75,所以if 條件式會為true。17 Java2語言實務 Ex3_1_401.class DemoPass_2 02.public static void main(String args)03.int score,num;04.score=50;
11、05.06.if(score=60)07.num=score-60;08.09.else10.num=60-score;11.12.System.out.println(The difference to 60 is+num+!);13.14.執行結果:The difference to 60 is 10!第 34 行:宣告名稱為 score、num 兩個整數變數各代表實得成績與 60 分的差距,並設定 score 值為 50。第 510 行:判斷成績是否大於或等於 60 分,若結果為 true,則執行 num=score-60;若結果為 false,則執行 num=60-score。範例中
12、score=50,所以 if 條件為 false,執行後得到 num 的值為 10。第 11 行:無論 if 結果為何,均執行 System.out.println(The distance to 60 is+num+!);19 Java2語言實務 (3)if 的多重條件判斷敘述 q當程式需要作一連串的判斷時,可以利用多個單一判斷語法組成多重判斷,q判斷式中的運算式或變數會逐一單獨地被判斷,根據判斷結果的不同,執行不同的運算式。q這樣的結構類似if else-if,其實是多層if 的應用。20 Java2語言實務 (3)多重條件判斷(cont.)【應用語法】以多層if形成if-elseif多重
13、判斷的應用格式為if(條件運算式一)運算式一;else if(條件運算式二)運算式二;else if(條件運算式n)運算式n;else運算式n+1;ifelse ifelse if運算式一運算式二運算式n運算式n+1圖3-5 if-elseif程 式流程圖truefalsefalseelsetruetruetruefalsefalse21 Java2語言實務 【應用語法說明】q當程式執行時,若if的條件運算式一為true時,會執行運算式一,若其為false時,程式執行次一else if判斷式。同樣的,若else if的條件運算式為true時,會執行對應的運算式,若其為false時,程式會執行次
14、一else if判斷式,這樣的判斷會逐一地執行,直到有一個條件式為這樣的判斷會逐一地執行,直到有一個條件式為truetrue或執行最後或執行最後elseelse的運算式部份。的運算式部份。22 Java2語言實務 【應用語法說明】(cont.)if(條件運算式一)/第一層 運算式一;else if(條件運算式二)/第二層 運算式二;else if(條件運算式n)/第n層運算式n;else運算式n+1;v這樣的語意請比較switch敘述的語法23 Java2語言實務 Ex3_1_5 例如,若有一個程式在開始時設定一個整數變數代表考試的成績,並依下列規則評等:90分以上A等;80到89分為B等;7
15、0分到79分為C等;60分到69分為D等;0分到59分為E等,若輸入的成績小於0分,或者大於100分,則印出錯誤訊息。把問題的邏輯想法表示成”成績評等程式流程圖”。score100印出錯誤設定成績score9 0score8 0score7 0score6 0score0印出錯誤印出A 等印出B 等印出C 等印出D 等印出E 等圖3-6 成 績評等程式流程圖truefalsefalsefalsefalsefalsefalsetruetruetruetruetrue開始結束24 Java2語言實務 Ex3_1_501.class DemoScore 02.public static void m
16、ain(String args)03.int score=73;04.if(score100)05.System.out.println(06.The Number you entered is over 100);07.else if(score=90)08.System.out.println(You got A!);09.else if(score=80)10 System.out.println(You got B!);11.else if(score=70)12.System.out.println(You got C!);13.else if(score=60)14.System.
17、out.println(You got D!);15.else if(score=0)16.System.out.println(You got E!);17.else18.System.out.println(19.The Value you entered is under zero points);【執行結果】You got C!25 Java2語言實務 【程式說明】(cont.)在範例中程式會根據的成績不同,透過印出相對應的等級至螢幕上。q 第3行:int score=73;程式一開始宣告一名稱為score的整數變數並設定其值為73。q 第4行:if(score100)然後程式使用 e
18、lse if的判斷應用,首先判斷if(score100),相當於 if(73100)所以條件式不成立。q 第7行:else if(score=90)判斷else if(score=90),相當於 if(73=90)所以條件式也不成立。q 第11行:else if(score=70)這樣的判斷一直到if(score=70),相當於 if(73=70)會成立,所以執行System.out.println(“You got C!”),將結果輸出至螢幕。26 Java2語言實務 Ex3_1_601.class DemoSeason 02.public static void main(String a
19、rgs)03.int month=1;04.if(month12)05.System.out.println(06.The month you entered is great than 12);07.else if(month=11|month=1)08.System.out.println(Winter!);09.else if(month=8)10.System.out.println(Autumn!);11.else if(month=5)12.System.out.println(Summer!);13.else if(month=2)14.System.out.println(Sp
20、ring!);15.else16.System.out.println(17.The month you entered is less than zero);18.19.20.21.執行結果:Winter!27 Java2語言實務 第 3 行:宣告一名稱為 month 的整數代表月份數,並設定其值為 1。(註 1)(註 1:應用程式可以運用輸入視窗物件輸入視窗物件輸入月份並判斷季節。)第 419 行,首先判斷 if(month12),即 if(112)不成立,而第 7 行亦不成立,直至第 15 行判斷成立。因此執行 System.out.println(Winter!);,將結果輸出至螢幕上
21、。(4)switch的多重條件判斷語法(cont.)多重判斷語法的另一種表示方式為運用switch判斷語法【語法】switch(條件式)case常數一:運算式一;break;.case常數n:運算式n;break;default:運算式n+1;break;(4)switch的多重條件判斷語法【語法】switch判斷語法的格式為switch(條件式)case常數一:運算式一;break;case常數二:運算式二;break;.case常數n:運算式n;break;default:運算式n+1;break;case 1運算式一圖3-7 switch程 式流程圖truefalsebreakcase
22、2運算式二breaktruecase n運算式nbreaktrue沒有b r eak的 動 作沒有b r eak的 動 作default運算式n+1breaktrue沒有b r eak的 動 作30 Java2語言實務 【語法說明】qswitch關鍵字後面括號內的條件式必須是整數或字元型態的變數。q變數將產生許多不同的值,下面每一個狀況(case)便是代表對條件式不同的值的處理;q每個case的後面都有一個常數,該常數的型態必須對應switch後的條件式為整數或字元,其中字元常數須由單引號作標示,如A。31 Java2語言實務 qcase的冒號後面都有運算式;運算式可以是由大括號”“包含的一連
23、串運算式;q在運算式後面的break可有可無的,若是case後的運算式沒有加上break,則會繼續執行下一個case運算式,直到遇到一個break或結束switch整個運算式為止;qdefault 是可有可無的,是表示若switch的條件式所產生的結果都沒有對應到前面任一個case時,則程式就由default的地方處理。32 Java2語言實務 Ex3_1_7 3-4 DemoScoreSwitch.javaclass DemoScoreSwitch public static void main(String args)throws Exception BufferedReader in=n
24、ew BufferedReader(new InputStreamReader(System.in);int score=Integer.parseInt(in.readLine();33 Java2語言實務 Ex3_1_7(cont.)switch(score)case 100:System.out.println(You got A+!);break;case 90:System.out.println(You got A!);break;case 80:System.out.println(You got B!);break;case 70:System.out.println(You
25、got C!);break;34 Java2語言實務 Ex3_1_7(cont.)case 60:System.out.println(You got D!);break;case 0:System.out.println(You got E!);break;default:System.out.println(The Value you must be 00,90,80,70,60,50,40,30,20,10,0 points);break;【執行結果】(根據輸入的不同,印出評等。)35 Java2語言實務 【程式說明】q在範例中,設定的值為10的倍數中0,10,20,30,40,50,6
展开阅读全文