880 likes | 996 Views
Java 流程控制. 課程大綱. Java 的流程控制 if-else switch-case for-loop for/in ( for-each ) while-loop do-while-loop. 課程大綱. Java 的流程控制 if-else switch-case for-loop for/in ( for-each ) while-loop do-while-loop. 一 、 Java 的流程控制. Java 在程式流程控制上採用了 C 語言的控制敘述,包含了以下四類: 條件式流程控制 (decision making)
E N D
課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop
課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop
一、Java 的流程控制 • Java 在程式流程控制上採用了 C語言的控制敘述,包含了以下四類: • 條件式流程控制 (decision making) • 回圈式流程控制 (Loop) • 例外控制 (Exception) • 特定控制單元 (Special Loop)
一、Java 的流程控制 • 條件式流程控制 (decision making) • if-else • switch-case
一、Java 的流程控制 • 回圈式流程控制 (Loop) • for-loop • for-in(for-each) • while-loop • do-while-loop
一、Java 的流程控制 • 例外控制 (Exception) • try-catch-finally • throw
一、Java 的流程控制 • 特定控制單元 (Special Loop) • label • break • continue
課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop
二、if-else • if-else 隸屬於條件式流程控制。 • 透過if-else 流程敘述中的布林運算式,來判斷運算元運算之當下條件是否成立。 • 例如:if(A > B),A 是否大於 B ?
二、if-else • if – else 運作流程 • if-else 流程敘述在條件成立的情況,會傳回布林值 true 並執行 if 下的程式區塊(program statement or block),反之則傳回 false並執行 else 下的程式區塊。
二、if-else • if – else 運作流程(圖 1) if 條件式 false true if條件成立時 處理的程式區塊 結束
二、if-else • if – else 運作流程(圖 2) if 條件式 false(else 成立) true if條件成立時 處理的程式區塊 else條件成立時 處理的程式區塊 結束
二、if-else • if – else 程式敘述,在撰寫上分 3 種: • 一般敘述 • 精簡敘述 • 多階層敘述
二、if-else • if – else 一般敘述
二、if-else • if – else 一般敘述 執行結果:等於 100
二、if-else • if – else 一般敘述 執行結果:不等於 100
二、if-else • if – else 一般敘述 執行結果:編譯錯誤
二、if-else • if – else 一般敘述 • if(money == 100) { ... } • ==是比較運算子,根據比較結果回傳布林值。 • if(money = 100) { ... } • =是指派運算子,並不會回傳布林值。 • 而在 if-else 程式碼敘述中,if(僅接受布林值)
二、if-else • if – else 一般敘述 執行結果:true
二、if-else • if – else 一般敘述 執行結果:true
二、if-else • if – else 一般敘述 (特例) 執行結果:false
二、if-else • if – else 流程敘述 • boolean b = true;if(b = false) {...} • boolean b 利用指派運算子可以編譯與執行。
二、if-else • if – else 精簡敘述
二、if-else • if – else 精簡敘述
二、if-else • if – else 精簡敘述 執行結果:編譯錯誤
二、if-else • if – else 階層式敘述
二、if-else • if – else 考題觀摩 執行結果:A, C
課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop
三、switch-case • switch-case 選擇性控制敘述的運算流程 • 其邏輯意義類似 if-else 巢狀模型。 • 主要成員: • selector:比對參數。 • 支援:char、byte、short、int。 • case:比對子 • break:控制 switch-case流程。 • 在比對上會自動轉換成 int來進行比對
三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) x 比對參數 true break case 1 程式敘述... case 2 程式敘述... 程式敘述... default 結束
三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) case 1 程式敘述... false case 2 true break 程式敘述... 程式敘述... default 結束
false false 三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) case 1 程式敘述... case 2 程式敘述... 程式敘述... default 結束
break true 三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) case 1 程式敘述... case 2 break 程式敘述... 程式敘述... default 結束
break break true 三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) case 1 程式敘述... case 2 程式敘述... 程式敘述... default 結束
三、switch-case • switch-case 範例應用(一) 執行結果:A
三、switch-case • switch-case 範例應用(二) 執行結果:AB
三、switch-case • switch-case 範例應用(三) 執行結果:A
三、switch-case • switch-case 範例應用(四) ASCII(65) = A 執行結果:A
三、switch-case • ASCII table:
編譯錯誤! 三、switch-case • switch-case 範例應用(五)
三、switch-case • switch-case 範例應用(六) 執行結果:A
三、switch-case • 再次提醒 switch(x):x 必須是 byte、char、short 或 int 的基本資料型態,不能是參考資料型別。 • 然而在值域小於 int 的資料型別中例如:byte、char、short,會自動做隱含式轉換成 int 資料型別後再交由 switch-case 執行。 • 也就是說,x 只能是 int 或比 int 小的資料型態,若是 long 或 double 等範圍比 int 大的資料型態就必須用強制轉換語法將其轉換成 int。
三、switch-case • switch(expression)中只能存放一個比對參數(argument)。 • switch(x) OK • switch(x, y) Error
三、switch-case • default 關鍵字可單獨存在於 switch-case 敘述中。 • switch(x) { default: ...}
三、switch-case • 若 switch-case 程式敘述中沒有比對出相符合的 case,也沒有 default 關鍵字,則switch-case 敘述將不會做任何事(does nothing)。 • int i = 100;switch(i) { case 200: System.out.println(“A”);} • 執行結果:Nothing !
編譯錯誤! 三、switch-case • 在 switch-case 敘述中,case 的比對子不可重複(must be unique),每一個 case 的比對子必須是唯一的。 • switch(x) { case ‘A’:case ‘A’:}
編譯錯誤! 三、switch-case • defaut 關鍵字在 switch-case 敘述中最多只能有一個。 • switch(x) { case ‘A’: default:default:}
課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop
四、for-loop • for-loop、while、do-while 與 for-each 皆屬於重複性控制迴圈(iteration loop) 。 • 其所包含的程式區塊將會被反覆執行,直到負責控制迴圈運算式(布林運算式)的條件不被滿足(傳回false)為止。 • 每當執行重複性控制迴圈的程式區塊時,負責控制迴圈的運算式也將再被判斷一次。