资源预览内容
第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
第9页 / 共50页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java流程控制1.流程控制的運算式3(1). 關係運算子3(2). 邏輯運算子4(3). 布林資料型別52.選擇結構6(1). 單向選擇 if6(2). 雙向選擇 if else7(3). 範例練習:exp3_2_1.java8(4). 條件運算子(? :敘述)(二選一)9(5). 範例練習:exp3_2_2.java9(6). 巢狀選擇(巢狀if else)10(7). 範例練習:exp3_2_3.java11(8). 多重選擇 if else if else12(9). 範例練習:exp3_2_4.java13(10). 多重選擇 switch15(11). 範例練習:exp3_2_5.java163.迴圈結構18(1). for迴圈18(2). 範例練習:exp3_3_1.java19(3). while迴圈與do while迴圈20(4). 範例練習:exp3_3_2.java22(5). 巢狀迴圈23(6). 範例練習:exp3_3_3.java23(7). 範例練習:exp3_3_4.java24(8). 中斷迴圈25(9). 範例練習:exp3_3_5.java26(10). 範例練習:exp3_3_6.java28(11). 指定標籤跳離29(12). 範例練習:exp3_3_7.java294.實例:exp3_4_1.java315.實例:exp3_4_2.java336.比較C+, VB.NET, Java的選擇結構(if else敘述)367.比較C+, VB.NET, Java的條件選擇結構(? :敘述)(二選一)388.比較C+, VB.NET, Java的條件選擇結構多個選擇判斷的 if else ifelse ifelse敘述399.比較C+, VB.NET, Java的多個選擇判斷:(Switch Case敘述)4110.比較C+, VB.NET, Java的計數迴圈:(for迴圈)4311.比較C+, VB.NET, Java的前測試迴圈(while迴圈)4512.比較C+, VB.NET, Java的後測試迴圈(do-while)4613.比較C+, VB.NET, Java的迴圈控制指令(中斷break, 繼續continue, 跳躍前往goto)481. 流程控制的運算式 程式語言都是由循序結構、選擇結構和迴圈結構三者組合而成的程式碼。循序結構的特性是從頭到尾、自上而下,一個敘述接著一個敘述逐行執行下去。選擇結構是當程式執行遇到分歧時,流程要往哪個敘述區段(statements)走,就要視當時資料所符合的條件來決定,若條件成立時,執行某一個特定的敘述區段;若條件不成立時,則執行另一個敘述區段。迴圈結構是當程式中有某個敘述區段需要被重複執行時使用,能否被重複執行也是根據當時資料所符合的條件來決定。條件成立時,可進入迴圈重複執行敘述區段;條件不成立時,則無法進入迴圈,當然就不能再執行該敘述區段。因此擁有清楚的邏輯分析能力,配合以上三種結構,方能寫出一個良好結構化的程式出來。前面的章節介紹資料型別時所使用的程式敘述,皆屬循序結構。本章針對選擇結構及迴圈結構的流程控制敘述做完整的介紹。關係運算式和邏輯運算式兩者都是在程式設計時,用來表示一個狀態或條件成立與否。這兩種運算式(或稱條件式)經過運算後會產生布林值,當條件成立時,其布林值為true(真);條件不成立時,則布林值為false(假)。當程式中遇到選擇結構或重複結構時,就必須使用此種條件式來比對當時的資料,供我們決定程式執行流程之參考。(1). 關係運算子 一般而言,會被用來比對條件是否符合的資料型別,以數值型別與字元型別為主。 字元是以Unicode碼來比較大小,a的Unicode碼為97,比b的Unicode碼98小,所以b比a大。若字串的第一個字元的Unicode碼相同,比第二字元Unicode碼的大小,以此類推。此處的關係運算子不能全部套用到字串資料型別,因在Java中,字串是由String類別中建立出來的物件,詳情請參考第4章。 (2). 邏輯運算子邏輯運算式是用來測試較複雜的條件,邏輯運算式的結果可以為true(真)或false(假)。當一個運算式中有兩個以上的關係運算子就必須透過邏輯運算子來連接,Java所提供邏輯運算子的種類以及邏輯運算式的用法如下表: 各種邏輯運算式經過運算後,所有可能的結果如下表: (3). 布林資料型別布林值只有兩個,一個為true、另一個為false。可分別用來表示真和假、Yes和No、男和女、On和Off兩種狀態。布林(boolean)型別資料常被使用在選擇結構與重複結構的關係運算式或邏輯運算式中,用來比較、判斷當時的資料是否符合運算式的結果(條件)。關係運算式或邏輯運算式的運算結果(boolean型別資料)也可存入boolean型別的變數中,但該變數使用前要先宣告,宣告格式如下:2. 選擇結構 選擇結構就是用程式來設計條件的分歧,當條件式與資料比對後,成立或不成立的結果是執行不同的程式流程。選擇結構一般可分為單向選擇、雙向選擇、多重選擇、巢狀選擇等。 (1). 單向選擇 if單向選擇是當判斷條件成立時,才會去執行指定的敘述或敘述區段;若條件不成立,該指定的敘述或敘述區段就不會被執行。反之亦是如此。 (2). 雙向選擇 if else雙向選擇是當判斷條件成立時,程式的流程會去執行指定的敘述或敘述區段;若條件不成立,則程式的流程會去執行另一個指定的敘述或敘述區段。 (3). 範例練習:exp3_2_1.java(4). 條件運算子(? :敘述)(二選一)簡單的雙向選擇可由條件運算子?:來取代。條件運算子會根據條件式的布林值,從指定的兩個資料之中傳回其中的一個,而待選的資料可以是任何型別的資料、變數或運算式。 (5). 範例練習:exp3_2_2.java(6). 巢狀選擇(巢狀if else)如果在選擇結構中又有其它的選擇結構,就形成了巢狀選擇結構。當條件式中有超過三個選擇項時,可以使用巢狀選擇結構。 (7). 範例練習:exp3_2_3.java(8). 多重選擇 if else if else當選擇的項目超過兩個時,雖然可以用巢狀選擇結構來解決,但太多層的巢狀結構會使程式的可讀性降低。此時可考慮使用else if多重選擇結構來處理。(9). 範例練習:exp3_2_4.java(10). 多重選擇 switch說明:1. 依據不同的運算式結果或變數值,執行對應case內的敘述區段。如:符合結果1,則執行敘述區段1;符合結果2,則執行敘述區段2,以此類推,若沒有一個case結果符合,就執行敘述區段default。2. 每一個case的敘述區段後面,加上跳離指令break,才可離開switch選擇結構。否則在執行了符合的case敘述區段之後,會接著執行下一個case敘述區段。3. 變數或運算式所得結果需要為整數或字元,不能為字串。 (11). 範例練習:exp3_2_5.java1. 行04:宣告ch為char資料型別的變數。 2. 行06:將鍵盤輸入字元指定給ch變數。 3. 行07:switch指令比對存放在ch變數內的字元資料。4. 行0811:caseA敘述區段中沒有break指令,則會去執行下一個case的敘述區段。鍵盤輸入字元不論大寫A或小寫a,都會顯示apple單字。5. 行16:若比對ch變數值沒有符合的資料,執行default敘述區段。 3. 迴圈結構 當程式中有某項功能需要被重複執行時,我們就將這項功能組成一個敘述區段,再將這敘述區段置入一個迴圈結構內。Java提供的迴圈有for迴圈、while迴圈、dowhile迴圈。 (1). for迴圈當迴圈內的敘述區段被重複執行的次數可以計數時,可使用for迴圈。只要先設定計數值,便能根據這個計數值來決定迴圈被重複執行的次數。 說明:1. for迴圈的計數值有初值、條件式和增值運算式三個引數,引數之間以;隔開。2. 初值:為for迴圈的起始值,可以有二個以上,但須以逗點,隔開。3. 條件式:為for迴圈的條件運算式,用來測試初值或增值是否符合條件需求,若符合則繼續執行迴圈,不符合則離開迴圈。4. 增值運算式:每執行一次for迴圈內的敘述,就會執行增值運算式。可以有二個以上,但必須以逗點,隔開。5. 當初值符合條件式測試,就會執行迴圈內的敘述區段一次;接著再執行增值運算,若運算後的增值仍符合條件式,則再執行迴圈內的敘述區段一次;直到條件式測試不符合,才離開迴圈。6. 敘述區段若只有一行敘述,則for迴圈可簡化如下: for (初值; 條件式; 增值運算式) 敘述; (2). 範例練習:exp3_3_1.java(3). while迴圈與do while迴圈當迴圈內的敘述區段被重複執行的次數不可預測時,甚至有些迴圈在某些情狀是不用被執行的。這時,可以使用條件迴圈。條件迴圈又分為前測試while迴圈與後測試dowhile迴圈,兩個的語法分別如下:2. 不論是前測試迴圈或後測試迴圈,皆須條件式為true時,才能進入或繼續執行迴圈;當條件式為false時,就無法進入迴圈。3. 以上範例for迴圈的內容為例,轉換成兩條件迴圈的程式碼分別如下:4. 前測試迴圈有可能一次也沒進入迴圈。但後測試迴圈至少要進入一次,而且要注意的是,後測試迴圈的最後要加分號;。 5. 後測試迴圈的dowhile (條件式);,其條件式中所用到的變數,一定要使用在進入迴圈之前宣告的變數,不可以使用在迴圈內宣告的變數。否則系統編譯時,會顯示錯誤。如下所示: 說明:條件式 (num1 num2) 中的num2,不是在進入迴圈之前宣告,而是在迴圈內宣告,故系統編譯時會顯示錯誤。(4). 範例練習:exp3_3_2.java1. 行07、08:為上車後前1.5公里的起程計費。 2. 行0912:為前測試迴圈,執行每行駛0.3公里,使車資累加5元。3. 當輸入的行駛公里數不超過1.5公里時,經第08行運算後,會不符合第09行的條件式 (km 0),此種情形造成程式的流程沒有進入迴圈。(5). 巢狀迴圈當迴圈結構中含有另一個迴圈時,就稱為巢狀迴圈。其內層迴圈與外層迴圈皆可以使用for迴圈、while迴圈及dowhile迴圈。(6). 範例練習:exp3_3_3.java(7). 範例練習:exp3_3_4.java(8). 中斷迴圈在迴圈的使用途中若要中斷迴圈
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号