1 / 88

Java 流程控制

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)

sonya-beck
Download Presentation

Java 流程控制

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java 流程控制

  2. 課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop

  3. 課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop

  4. 一、Java 的流程控制 • Java 在程式流程控制上採用了 C語言的控制敘述,包含了以下四類: • 條件式流程控制 (decision making) • 回圈式流程控制 (Loop) • 例外控制 (Exception) • 特定控制單元 (Special Loop)

  5. 一、Java 的流程控制 • 條件式流程控制 (decision making) • if-else • switch-case

  6. 一、Java 的流程控制 • 回圈式流程控制 (Loop) • for-loop • for-in(for-each) • while-loop • do-while-loop

  7. 一、Java 的流程控制 • 例外控制 (Exception) • try-catch-finally • throw

  8. 一、Java 的流程控制 • 特定控制單元 (Special Loop) • label • break • continue

  9. 課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop

  10. 二、if-else • if-else 隸屬於條件式流程控制。 • 透過if-else 流程敘述中的布林運算式,來判斷運算元運算之當下條件是否成立。 • 例如:if(A > B),A 是否大於 B ?

  11. 二、if-else • if – else 運作流程 • if-else 流程敘述在條件成立的情況,會傳回布林值 true 並執行 if 下的程式區塊(program statement or block),反之則傳回 false並執行 else 下的程式區塊。

  12. 二、if-else • if – else 運作流程(圖 1) if 條件式 false true if條件成立時 處理的程式區塊 結束

  13. 二、if-else • if – else 運作流程(圖 2) if 條件式 false(else 成立) true if條件成立時 處理的程式區塊 else條件成立時 處理的程式區塊 結束

  14. 二、if-else • if – else 程式敘述,在撰寫上分 3 種: • 一般敘述 • 精簡敘述 • 多階層敘述

  15. 二、if-else • if – else 一般敘述

  16. 二、if-else • if – else 一般敘述 執行結果:等於 100

  17. 二、if-else • if – else 一般敘述 執行結果:不等於 100

  18. 二、if-else • if – else 一般敘述 執行結果:編譯錯誤

  19. 二、if-else • if – else 一般敘述 • if(money == 100) { ... } • ==是比較運算子,根據比較結果回傳布林值。 • if(money = 100) { ... } • =是指派運算子,並不會回傳布林值。 • 而在 if-else 程式碼敘述中,if(僅接受布林值)

  20. 二、if-else • if – else 一般敘述 執行結果:true

  21. 二、if-else • if – else 一般敘述 執行結果:true

  22. 二、if-else • if – else 一般敘述 (特例) 執行結果:false

  23. 二、if-else • if – else 流程敘述 • boolean b = true;if(b = false) {...} • boolean b 利用指派運算子可以編譯與執行。

  24. 二、if-else • if – else 精簡敘述

  25. 二、if-else • if – else 精簡敘述

  26. 二、if-else • if – else 精簡敘述 執行結果:編譯錯誤

  27. 二、if-else • if – else 階層式敘述

  28. 二、if-else • if – else 考題觀摩 執行結果:A, C

  29. 課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop

  30. 三、switch-case • switch-case 選擇性控制敘述的運算流程 • 其邏輯意義類似 if-else 巢狀模型。 • 主要成員: • selector:比對參數。 • 支援:char、byte、short、int。 • case:比對子 • break:控制 switch-case流程。 • 在比對上會自動轉換成 int來進行比對

  31. 三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) x 比對參數 true break case 1 程式敘述... case 2 程式敘述... 程式敘述... default 結束

  32. 三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) case 1 程式敘述... false case 2 true break 程式敘述... 程式敘述... default 結束

  33. false false 三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) case 1 程式敘述... case 2 程式敘述... 程式敘述... default 結束

  34. break true 三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) case 1 程式敘述... case 2 break 程式敘述... 程式敘述... default 結束

  35. break break true 三、switch-case • switch-case 選擇性控制敘述的運算流程 switch(x) case 1 程式敘述... case 2 程式敘述... 程式敘述... default 結束

  36. 三、switch-case • switch-case 範例應用(一) 執行結果:A

  37. 三、switch-case • switch-case 範例應用(二) 執行結果:AB

  38. 三、switch-case • switch-case 範例應用(三) 執行結果:A

  39. 三、switch-case • switch-case 範例應用(四) ASCII(65) = A 執行結果:A

  40. 三、switch-case • ASCII table:

  41. 編譯錯誤! 三、switch-case • switch-case 範例應用(五)

  42. 三、switch-case • switch-case 範例應用(六) 執行結果:A

  43. 三、switch-case • 再次提醒 switch(x):x 必須是 byte、char、short 或 int 的基本資料型態,不能是參考資料型別。 • 然而在值域小於 int 的資料型別中例如:byte、char、short,會自動做隱含式轉換成 int 資料型別後再交由 switch-case 執行。 • 也就是說,x 只能是 int 或比 int 小的資料型態,若是 long 或 double 等範圍比 int 大的資料型態就必須用強制轉換語法將其轉換成 int。

  44. 三、switch-case • switch(expression)中只能存放一個比對參數(argument)。 • switch(x)  OK • switch(x, y)  Error

  45. 三、switch-case • default 關鍵字可單獨存在於 switch-case 敘述中。 • switch(x) { default: ...}

  46. 三、switch-case • 若 switch-case 程式敘述中沒有比對出相符合的 case,也沒有 default 關鍵字,則switch-case 敘述將不會做任何事(does nothing)。 • int i = 100;switch(i) { case 200: System.out.println(“A”);} • 執行結果:Nothing !

  47. 編譯錯誤! 三、switch-case • 在 switch-case 敘述中,case 的比對子不可重複(must be unique),每一個 case 的比對子必須是唯一的。 • switch(x) { case ‘A’:case ‘A’:}

  48. 編譯錯誤! 三、switch-case • defaut 關鍵字在 switch-case 敘述中最多只能有一個。 • switch(x) { case ‘A’: default:default:}

  49. 課程大綱 • Java 的流程控制 • if-else • switch-case • for-loop • for/in(for-each) • while-loop • do-while-loop

  50. 四、for-loop • for-loop、while、do-while 與 for-each 皆屬於重複性控制迴圈(iteration loop) 。 • 其所包含的程式區塊將會被反覆執行,直到負責控制迴圈運算式(布林運算式)的條件不被滿足(傳回false)為止。 • 每當執行重複性控制迴圈的程式區塊時,負責控制迴圈的運算式也將再被判斷一次。

More Related