书签 分享 收藏 举报 版权申诉 / 79
上传文档赚钱

类型控制程式的行为讲解课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3324990
  • 上传时间:2022-08-20
  • 格式:PPT
  • 页数:79
  • 大小:916KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《控制程式的行为讲解课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    控制 程式 行为 讲解 课件
    资源描述:

    1、第三章、控制程式的行為控制程式的行為本章大綱、判斷敘述、判斷敘述、迴圈敘述、迴圈敘述、分支敘述、分支敘述、函式呼叫、函式呼叫1*第1页,共79页。循序敘述與控制敘述循序敘述與控制敘述q 但真正在使用的程式,幾乎每一個都會需要透過特定的敘述(Statement)要求程式做執行順序的改變。不會要求改變流程的敘述,稱為”循序敘述循序敘述”。如宣告,加減運算等;會改變流程的敘述稱為”控制敘述控制敘述”。q Java的控制敘述:判斷判斷(Decision)(Decision)是用來判斷當某個條件成立時,執行對應的程式處執行,例如,考試成績大於60分為及格,則印出及格訊息;迴圈(迴圈(LoopingLoo

    2、ping)是用來表達可重複性的動作,比如說作1加到100的動作,連續加99次;分支(分支(BranchBranch)是用在如中斷迴圈並跳出的情形;副程式呼叫(副程式呼叫(Function CallFunction Call)是將常用的程式段獨立出來,在需要時跳至該處執行後,再回原處繼續執行,如此可以簡化程式的設計,是程式設計常用到的技術。2*第2页,共79页。控制敘述表 語法種類 關鍵字(一)判斷(Decision)if,if-else,switch-case (二)迴圈(Looping)while,do-while,for (三)分支(Branch)break,continue,return

    3、 (四)副程式呼叫(Function Call)function name();3*第3页,共79页。、判斷敘述、判斷敘述4*第4页,共79页。3-1判斷敘述:if及if-else,switch-case在真實世界中,我們常常要面對許多根據條件作判斷(DecisionDecision)結果,執行不同動作的情形。Java三種判斷敘述的分類:判斷情形關鍵字單執行條件判斷敘述if 雙執行條件判斷敘述if-else 多重條件判斷敘述if-elseif,switch-case 5*第5页,共79页。(1)(1)單執行條件判斷敘述單執行條件判斷敘述 ifif當程式執行到if判斷運算式時,會根據條件判斷,若

    4、結果為真(true),執行運算式;若結果為假(false),則不執行。【語法】if(if(條件運算式條件運算式)運算式運算式;判斷運算式運算式圖3-1 if語法流程圖truefalse6*第6页,共79页。【語法說明-大括號存在的差異性】請注意if 中運算式,可以是單一敘述也可以是加上大括弧的一連串運算式集合完成較複雜的功能。在多行敘述時要,以指定運算式敘述的範圍,否則運算式的範圍會誤為只有一行,圖3-2說明運算集合中大括號存在的差異性。7*第7页,共79页。圖3-2 運算集合中大括號存在的差異性圖x5y=y-1z=z+3x5y=y-1z=z+3turefalseturefalse圖3-2 運

    5、算集合中大括號存在的差異性x=3;if(x5)y=y-1;z=z+3;x=3;if(x5)y=y-1;z=z+3;(無大括號)(有大括號)8*第8页,共79页。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行 int x;int y;int z;三行程式

    6、宣告三個整數變數的名稱分別為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=210*第10页,共79页。第 35 行宣告三個整數變數 x、y、z 並設定其值分別為 2、1、0。第 79 行判斷 x 值是否大於 y,若判斷的結果為 true,程式會進入 if 後由大括號所包含的運算式,依序執行 z=

    7、y;y=x;x=z;三行敘述,這三行敘述是典型 x、y 兩個變數內容互換的寫法,其中 z 變數式當作中間暫存值,將 y 的值先保留下來。所以當執行 y=x 後才能將原來的值由 z 變數再設定給 x 變數。第 12 行使用 System.out.println()分別列印 x、y 的值至螢幕上。11*第11页,共79页。(2)雙條件判斷 if-else雙條件判斷 if-else:也包含了條件“不成立”時所要執行的另一個運算式。當if判斷結果為true時,程式會執行if之後的運算式部分;當if判斷結果為false時,程式會執行else之後的運算式部分。【語法】【語法】if(if(條件運算式條件運算

    8、式)執行運算式一執行運算式一;elseelse執行運算式二執行運算式二;12*第12页,共79页。判斷運算式運算式一運算式二圖3-3 if-else語法流程圖truefalse13*第13页,共79页。Ex3_1_3(1)若有一個程式在開始時設定一個整數代表考試的成績,若成績大於60分則螢幕顯示及格訊息;若小於六十分則螢幕顯示不及格訊息。score60設定成績印出及格訊息圖3-4 成 績評等程式流程圖turefalse印出不及格訊息開始結束14*第14页,共79页。Ex3_1_3(2)3-2 DemoPass.java3-2 DemoPass.javaclass DemoPass public

    9、 static 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!15*第15页,共79页。Ex3_1_3範例說明q 第34行:int score;score=75;首先宣告名稱為score的整數變數,並設定其值為75;q 第611行if(score=60)System.out.println(You p

    10、assed the 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。16*第16页,共79页。Ex3_1_401.class DemoPass_2 02.public static void main(String args)03.int score,num;04.s

    11、core=50;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!17*第17页,共79页。第 34 行:宣告名稱為 score、num 兩個整數變數各代表實得成績與 60 分的差距,並設定 score 值為 50。第 510 行:判斷成績是否大於或等於 60 分,若結果為 true,則執行 num=score-60;若結果為 false,

    12、則執行 num=60-score。範例中 score=50,所以 if 條件為 false,執行後得到 num 的值為 10。第 11 行:無論 if 結果為何,均執行 System.out.println(The distance to 60 is+num+!);18*第18页,共79页。(3)if 的多重條件判斷敘述 q當程式需要作一連串的判斷時,可以利用多個單一判斷語法組成多重判斷,q判斷式中的運算式或變數會逐一單獨地被判斷,根據判斷結果的不同,執行不同的運算式。q這樣的結構類似if else-if,其實是多層if 的應用。19*第19页,共79页。(3)多重條件判斷(cont.)【應用

    13、語法】以多層if形成if-elseif多重判斷的應用格式為if(條件運算式一)運算式一;else if(條件運算式二)運算式二;else if(條件運算式n)運算式n;else運算式n+1;ifelse ifelse if運算式一運算式二運算式n運算式n+1圖3-5 if-elseif程 式流程圖truefalsefalseelsetruetruetruefalsefalse20*第20页,共79页。【應用語法說明】q當程式執行時,若if的條件運算式一為true時,會執行運算式一,若其為false時,程式執行次一else if判斷式。同樣的,若else if的條件運算式為true時,會執行對應

    14、的運算式,若其為false時,程式會執行次一else if判斷式,這樣的判斷會逐一地執行,直到有一個條件式為這樣的判斷會逐一地執行,直到有一個條件式為truetrue或執或執行最後行最後elseelse的運算式部份。的運算式部份。21*第21页,共79页。【應用語法說明】(cont.)if(條件運算式一)/第一層 運算式一;else if(條件運算式二)/第二層 運算式二;else if(條件運算式n)/第n層運算式n;else運算式n+1;v這樣的語意請比較switch敘述的語法22*第22页,共79页。Ex3_1_5 例如,若有一個程式在開始時設定一個整數變數代表考試的成績,並依下列規則評

    15、等:90分以上A等;80到89分為B等;70分到79分為C等;60分到69分為D等;0分到59分為E等,若輸入的成績小於0分,或者大於100分,則印出錯誤訊息。把問題的邏輯想法表示成”成績評等程式流程圖”。score100印出錯誤設定成績score9 0score8 0score7 0score6 0score0印出錯誤印出A 等印出B 等印出C 等印出D 等印出E 等圖3-6 成 績評等程式流程圖truefalsefalsefalsefalsefalsefalsetruetruetruetruetrue開始結束23*第23页,共79页。Ex3_1_501.class DemoScore 02

    16、.public static void main(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 i

    17、f(score=60)14.System.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!24*第24页,共79页。【程式說明】(cont.)在範例中程式會根據的成績不同,透過印出相對應的等級至螢幕上。第3行:int score=73;程式一開始宣告一名稱為score的整數變數並設定其值為73。第4行:if(

    18、score100)然後程式使用 else 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!”),將結果輸出至螢幕。25*第25页,共79页。Ex3_1_601.class DemoSeason 02.public static v

    19、oid main(String args)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.Syst

    20、em.out.println(Spring!);15.else16.System.out.println(17.The month you entered is less than zero);18.19.20.21.執行結果:Winter!26*第26页,共79页。第 3 行:宣告一名稱為 month 的整數代表月份數,並設定其值為 1。(註 1)(註 1:應用程式可以運用輸入視窗物件輸入視窗物件輸入月份並判斷季節。)第 419 行,首先判斷 if(month12),即 if(112)不成立,而第 7 行亦不成立,直至第 15 行判斷成立。因此執行 System.out.println(Wi

    21、nter!);,將結果輸出至螢幕上。27*第27页,共79页。(4)switch的多重條件判斷語法(cont.)多重判斷語法的另一種表示方式為運用switch判斷語法【語法】switch(條件式)case常數一:運算式一;break;.case常數n:運算式n;break;default:運算式n+1;break;28*第28页,共79页。(4)switch的多重條件判斷語法【語法】switch判斷語法的格式為switch(條件式)case常數一:運算式一;break;case常數二:運算式二;break;.case常數n:運算式n;break;default:運算式n+1;break;cas

    22、e 1運算式一圖3-7 switch程 式流程圖truefalsebreakcase 2運算式二breaktruecase n運算式nbreaktrue沒有b r eak的 動 作沒有b r eak的 動 作default運算式n+1breaktrue沒有b r eak的 動 作29*第29页,共79页。【語法說明】qswitch關鍵字後面括號內的條件式必須是整數或字元型態的變數。q變數將產生許多不同的值,下面每一個狀況(case)便是代表對條件式不同的值的處理;q每個case的後面都有一個常數,該常數的型態必須對應switch後的條件式為整數或字元,其中字元常數須由單引號作標示,如A。30*

    23、第30页,共79页。qcase的冒號後面都有運算式;運算式可以是由大括號”“包含的一連串運算式;q在運算式後面的break可有可無的,若是case後的運算式沒有加上break,則會繼續執行下一個case運算式,直到遇到一個break或結束switch整個運算式為止;qdefault 是可有可無的,是表示若switch的條件式所產生的結果都沒有對應到前面任一個case時,則程式就由default的地方處理。31*第31页,共79页。Ex3_1_7 3-4 DemoScoreSwitch.javaclass DemoScoreSwitch public static void main(Strin

    24、g args)throws Exception BufferedReader in=new BufferedReader(new InputStreamReader(System.in);int score=Integer.parseInt(in.readLine();32*第32页,共79页。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 go

    25、t B!);break;case 70:System.out.println(You got C!);break;33*第33页,共79页。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;【執行結果】(根據輸入的不同,印出評等。)34*第34页,共79

    26、页。【程式說明】q 在範例中,設定的值為10的倍數中0,10,20,30,40,50,60,70,80,90,100中的其中一個,而非1100任一值。q第8行 switch(score)表示程式將透過switch判斷語法,對score變數的數值,選擇要執行的運算式。q第9行 case 100:表示若score的值符合score=100的情況,就執行case:後面的程式片段。35*第35页,共79页。【程式說明】(cont.)q第11行 break;表示程式片段執行完畢,同時結束switch多重判斷語法,程式繼續往下一段運算式執行;若(case 100:)條件不成立,程式會往下一個(case 9

    27、0:)作判斷,直到case條件成立,進入case:後程式片段執行程式,最後由break;來跳出switch多重判斷語法。q第27行 default:表示當所有的case條件都不成立時,程式要執行的運算式。36*第36页,共79页。、迴圈敘述、迴圈敘述37*第37页,共79页。3-2 迴圈(Loop)敘述:for,while,do-whileq 和3-1判斷敘述相似的,在真實世界中,我們也常需要作重複性的運算,比如說計算1加到10的總數,就需要連續作9次加法,這時我們可以用迴圈來控制Java程式的重複執行某些工作。q Java語言中的迴圈有三種型態,分別為:q(1)for迴圈q(2)while迴

    28、圈q(3)do-while迴圈;q 以累加數字1到10的總和範例,作為迴圈三種型態的用法、比較和說明38*第38页,共79页。(1)for迴圈敘述:【語法】for語法為for(初始設定敘述;可重複條件;改變相關敘述)運算式;.初始設定敘述改變相關敘述可重複條件跳出迴圈執行下一個運算式truefalse圖3-8 for迴 圈語法流程圖39*第39页,共79页。【語法說明】可以把for迴圈視為一個計數器在跑動。指定的for語法可以分為三個區段,分別用分號隔開,由左而右依序介紹:q 初始設定敘述:q 常用以設定計數器開始的時間,也就是迴圈從什麼狀態值開始執行。q 通常我們會指定一個整數變數並將它歸零

    29、,如i=0。q 可重複條件:q 表示能繼續執行迴圈的符合條件。q 例如若可重複條件為i10,當i的值大於、等於10時,則會離開迴圈。q 改變相關敘述:q 常用以決定計數器的計數單位每次的變化。q 也就是每次迴圈的變化值,如i=i+3。40*第40页,共79页。Ex3_2_1 我們以求數字自1加到10的總和並將結果顯示出來的問題為範例,說明for迴圈敘述語法的使用方式。在撰寫迴圈敘述程式前,習慣上可以先將加總的演算方法(Algorithm)列出來:步驟1:宣告變數sum並清除為0,用以存放加總結果。並設定計數變數i=1,表示從1開始作運算。步驟2:如果i10,跳至步驟3繼續迴圈的執行,否則跳至步

    30、驟4離開迴圈。步驟3:sum+=i;且i+;再回到步驟2。步驟4.列印加總結果(sum),程式結束41*第41页,共79页。Ex3_2_1(cont.)q 將演算方法轉換成流程圖表示如圖3-9q 再將流程圖轉換成Java程式3-5圖3-9 計 算1-1 0加 總 程 式流程圖for(i=1;i=10;i+)sum+=i;i+;i=10truefalse印出s u m開始結束42*第42页,共79页。Ex3_2_1程式 3-5 DemoSumFor.javaclass DemoSumFor public static void main(String args)int sum=0;for(int

    31、 i=1;i=10;i+)for(int i=1;i=10;i+)sum=sum+i;sum=sum+i;System.out.println(The Summation is+sum);【執行結果】The Summation is 5543*第43页,共79页。【程式說明】q 第3行:int sum=0;宣告一個名稱為sum的整數變數,並設定其值為0;q 第4行:for(int i=1;i=10;i+)for迴圈敘述行中,初始值變數i1,表示迴圈第一次從1開始作運算可重複條件定義i10,表示當i10成立時,允許迴圈運作;當i=10不成立時,程式即跳出迴圈程式碼改變值定義i+,也就是i=i+1

    32、,表示每次迴圈i的變化值是1。q第5行:sum=sum+i;程式第一次執行時i的值為1,所以進行sum=sum+i;的動作,並且將i+1=2設定給i。依迴圈的敘述當進行至i的值為11時,for迴圈判斷計數器的值大於10,即跳出迴圈至下一個運算式。q 第7行:System.out.println(The Summation is+sum);透過system.out.println()將結果輸出至螢幕上。44*第44页,共79页。Ex3_2_201.class DemoSumFor_202.public static void main(String args)03.for(int i=1;i=1

    33、0;i+)04.System.out.println(i);05./在螢幕上顯示 1-10 的內容06.07.08.09.45*第45页,共79页。程式 Ex3_2_2 中,第 36 行:for(int i=1;i=10;i+)for(int i=1;i=10;i+)System.out.println(i);System.out.println(i);設定 for 迴圈中初始值變數 i=1,表示迴圈第一次從 1 開始運算,只要 i=10 即重複執行迴圈運作,並將數值變化結果 i 顯示在螢幕上,直到 i=10 不成立時,即跳離迴圈。46*第46页,共79页。(2)while迴圈敘述q 以比較的

    34、方式來說明while和do while迴圈語法。qwhile迴圈:先作判斷運算式,決定是否允許迴圈繼續執行;qdo-while迴圈:則是先執行迴圈,再判斷是否允許下一次執行。qdo-while至少執行運算一次,而while可能在首次判斷運算式即不成立時直接跳出迴圈,所以可能執行0次。【語法】while語法為while(判斷運算式)運算式;判斷運算式運算式圖3-10 while語 法流程圖truefalse47*第47页,共79页。【語法說明】在while迴圈敘述語法中:q不會預設執行的次數q習慣上會指定一個迴圈控制變數,並設定迴圈控制變數進入迴圈前的值,再進入迴圈中。q在迴圈的運算式中改變控制

    35、變數的值,再回至迴圈起點透過判斷運算式來決定是否再一次執行迴圈。q當程式執行到while的判斷運算式時,若判斷運算式成立則執行運算式,不成立則結束迴圈。48*第48页,共79页。Ex3_2_3同樣以求數字自1加到10總和的範例來說明while迴圈的應用:01.class DemoSumWhile02.public static void main(String args)03.int sum=0;04.int i=1;05.05.while(i=10)while(i=10)06.06.sum=sum+i;sum=sum+i;07.07.i+;i+;08.08.09.System.out.pri

    36、ntln(The Summation is +sum);10./在螢幕上顯示出內容11.12.【執行結果】The Summation is 5549*第49页,共79页。【程式說明】q 第34行:int sum=0;int i=1;宣告一個名稱為sum的整數變數,用於存放加總後的結果,並設定其值為0;宣告i為整數變數作為控制變數,並設定數值為1,表示加總從1開始;q 第58行:while(i=10)sum=sum+i;i+;判斷運算式為i=1&i=1&i=10)system.out.print1n(i);system.out.print1n(i);sum=sum+1;sum=sum+1;i+;

    37、i+;q 每次執行迴圈時控制變數值的更改不正確或永遠沒有更改,使迴圈無法停止,形成“無窮迴圈”。使用迴圈語法時初學者常常容易犯的錯誤51*第51页,共79页。Ex3_2_401.class DemoWhile_202.public static void main(String args)03.int i=1;04.04.while(i=10)while(i=10)05.05.System.out.print(i)+,;System.out.print(i)+,;06.06./在螢幕上顯示在螢幕上顯示 1-10 1-10 的出內容的出內容07.07.i+;i+;08.08.09.System.

    38、out.println(End);10.11.執行結果:1,2,3,4,5,6,7,8,9,10,End52*第52页,共79页。第 3 行:程式一開始宣告名稱 i 為一整數,並設定其值為 1 第 47 行:while(i10,條件不成立,因此不執行迴圈,執行下一個敘述,將 End 字串印出後程式結束。53*第53页,共79页。(3)do-while迴圈敘述【語法及流程圖】【語法】do-while語法的格式為do 運算式;while(判斷運算式);判斷運算式運算式圖3-11 do-while語 法流程圖truefalse54*第54页,共79页。【語法說明】qdo-while和whileq相同

    39、:不預先設定迴圈執行的次數。q不同不同:先設定控制變數進入迴圈前的值後,先設定控制變數進入迴圈前的值後,即執行迴圈範圍內的運算式。即執行迴圈範圍內的運算式。q如圖3-11:q在迴圈範圍的運算式中也要注意設定控制變數的改變,最後再執行判斷運算式,若為true繼續執行迴圈,若為false則離開迴圈。55*第55页,共79页。Ex3_2_5 以數字1到10加總的範例說明do-while迴圈敘述語法的使用方式,如程式3-7。01.class DemoSumDoWhile02.public static void main(String args)03.int sum=0,i=1;04.do05.sum

    40、=sum+i;06.i+;07.while(i=10);08.System.out.println(The sum=+sum);09./在螢幕上顯現出內容10.Syatem.out.println(The control varible i=+i);11.12.【執行結果】The sum=55 The control varible i=1056*第56页,共79页。【程式說明】在範例3-7中,q 第47行:do sum=sum+i;i+;while(i=10);q 會先控制變數i設定成1,執行一次迴圈範圍裡面的計算總合sum=sum+i;q 執行i+;使遞增值改變。q 執行while(i=1

    41、0),判斷是否再次跳至do敘述處繼續執行;q 當i的數值為10時:q 迴圈加總後,執行i+得到i為11,q while(i=10)判斷運算式不成立,程式會離開迴圈往下執行印出結果而非跳至do繼續執行迴圈。q 在使用do-while迴圈敘述語法時,注意不可遺漏while(判斷運算式);後面的分號,否則會產生語法錯誤。57*第57页,共79页。Ex3_2_601.class DemoDoWhile02.public static void main(String args)03.int i=1;04.do05.System.out.print(i)+,;06./在螢幕上顯現出 1-10 的內容07

    42、.i+;08.while(i=10);09.System.out.println(End)10.11.執行結果:1,2,3,4,5,6,7,8,9,10,End58*第58页,共79页。本範例與範例程式 Ex3_2_4 不同之處,在於迴圈 do-while 不管 while 限制迴圈條件為何,皆會先執行迴圈內容一次,因此當 i+使得 i 的值為 11 時,雖 i=10 不成立,但仍會執行 System.out.println(i)敘述一次後,才跳出迴圈並結束。59*第59页,共79页。、分支敘述、分支敘述60*第60页,共79页。3-3 分支(Branching)敘述:break,contin

    43、ueq因為迴圈通常會在判斷運算式不成立時跳出迴圈,但當運算判斷式永遠成立時,會變成所謂的“無限迴圈”時,可以使用Java程式的分支語法61*第61页,共79页。(1)break分支敘述:【語法】break分支語法(迴圈敘述語法)break;【語法說明】當碰到break敘述,不論當時控制變數及迴圈的狀況為何,程式將會終止迴圈繼續進行,並強迫跳出到迴圈下一個運算式執行。圖3-12 break語法示意圖迴圈敘述語法 運算式1;/程式片斷 運算式2;break;運算式n;62*第62页,共79页。(2)continue分支敘述:【語法】continue分支語法迴圈敘述語法 continue;【語法說明

    44、】當迴圈執行到continue敘述處時,會強迫程式暫時中止這一次這一次迴圈的執行,後面的運算式雖包含在迴圈內,但在這一次迴圈進行中將不會被執行。程式會直接略過本次迴圈其餘的部分,而重新跳到迴圈的開始處,繼續重新開始下一次迴圈的執行。圖3-12 continue語法示意圖迴圈敘述語法 運算式1;/程式片斷 運算式2;continue;運算式n;63*第63页,共79页。Ex3_3_1 01.class DemoBreakAndContinue 02.public static void main(String args)03.03.for(int i=0;i100;i+)for(int i=0;

    45、i100;i+)04.04.if(i=74)break;/if(i=74)break;/跳出跳出 For For 迴圈迴圈05.05.if(i%9!=0)continue;/if(i%9!=0)continue;/跳至下一次迴圈跳至下一次迴圈06.06.System.out.println(i);System.out.println(i);07.07./在螢幕上顯現出在螢幕上顯現出 i i 的內容的內容08.08.09.System.out.println(after break);10.11.64*第64页,共79页。【程式說明】第37行for(int i=0;i100;i+)for(int

    46、 i=0;i100;i+)if(i=74)break;/if(i=74)break;/跳出跳出ForFor迴圈迴圈 if(i%9!=0)continue;/if(i%9!=0)continue;/下一個迴圈下一個迴圈 System.out.println(i);System.out.println(i);定義for迴圈從i=1開始到i=100時結束,每次i改變的數值為加1,若i的值等於74時,會執行break敘述語法則跳出迴圈,執行system.out.println(“i”);若i的值為9的倍數時,印出i的值,若不是9的倍數(即i%9!=0)程式即執行continue敘述語法,程式會跳過sy

    47、stem.out.println(“i”)直接進行下一個迴圈的開始。65*第65页,共79页。Ex3_3_2 01.class DemoBreakAndContinue_2 02.public static void main(String args)03.for(int i=1;i=20;i+)04.if(i%10=0)continue;05.06.if(i=20)break;07.System.out.println(i);08 09.System.out.println(after break);10.11.66*第66页,共79页。執行結果:1234567891112131415161

    48、71819after break67*第67页,共79页。第 38 行:for(int i=1;i=20;i+)if(i%10=0)continue;/下一個迴圈if(i=20)break;/跳出 For 迴圈System.out.println(i);/在螢幕上顯現出 i 值定義一個 for 迴圈,i 作為控制變數,從開始到 20 時結束,每次 i 改變的數值為加 1 並將 i 的值顯示在螢幕上。但 i 的值為 10 的倍數時則跳出此次迴圈,並執行下一個迴圈,直到 i=20 時執行 break 離開迴圈,並顯示 after break 字串。因此結果中不會顯示 i=10,i=20 這兩個數字

    49、。68*第68页,共79页。、函式呼叫、函式呼叫69*第69页,共79页。3-43-4函式呼叫(Function Call)q 當我們在寫Java程式時,常常會發現:q 相似的程式碼有重複使用的情形相似的程式碼有重複使用的情形,這時我們可以把重複使用的程式段落,改寫成函式的形式,讓它有獨立且可以再被使用的功能,q 使使JavaJava程式更簡潔,更容易閱讀、維護與撰寫。程式更簡潔,更容易閱讀、維護與撰寫。70*第70页,共79页。【語法】宣告副程式的語法格式為【語法】函式型態函式名稱(參數列)函式主體(運算式所組成)return 傳回值;【語法說明】函式名稱函式名稱:函式都要具有一個特定的名稱

    50、。函式型態函式型態:函式呼叫結束時,用來設定另一個代表呼叫結果的變數值。參數列參數列:可有可無的,若副程式值時需要特定的數值,就會在函式呼叫時,傳入所需的變數值,以便在函式主體中被使用。return return 傳回值傳回值:可有可無的,將傳回值傳送到呼叫函式的主程式內71*第71页,共79页。【語法】副程式的呼叫【語法說明】主程式 函式名稱(參數列);【語法說明】在主程式中可以用呼叫函式的方式,將程式的流程跳至函式中執行,在函式執行完畢後,再跳回主程式呼叫函式的下一敘述繼續執行。呼叫函式的方法為,在要執行函式的地方寫上函式的名稱及“()”並加上“;”,代表一個敘述。在()中,若函式宣告時具

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:控制程式的行为讲解课件.ppt
    链接地址:https://www.163wenku.com/p-3324990.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库