4-7 switch/case 選擇分歧
4-7-1 switch/case 敘述流程 switch/case 與多重 if/else 敘述皆是多重條件判斷,兩者處理方式也大致上相同。但如果判斷條件太多時,利用 if/else 敘述編寫,會感到很難閱讀,然而 switch/case 可簡了許多。圖 4-5 為 switch/case 敘述的流程圖,看起來好像是『多選一』的敘述,其實不然,它也如同多重 if/else 敘述一樣,也會一個條件接著一個條件測試。當某一條件成立時,則執行該條件下(case)的敘述區塊,執行完畢後,並不立即結束該敘述,而會繼續測試下一個條件(此功能與 if/else 不同),也會執行下一條件的敘述。
圖 4-5 Switch/case 敘述的流程圖 一般情況下,大多期望眾多條件中,僅要求合乎其中一個條件,並僅執行該條下的敘述區塊。因此,條件敘述區塊的最後一行,加入『break』 敘述,表示符合某一條件,執行完畢後立即離開該 switch/case 敘述。Switch/case 敘述語法與範例如下:
4-7-2 範例研討:多功能計算器製作 (A)系統功能:Ex4_6.java 請製作一個具有加(+)、減(-)、乘(*)與除(/)功能的計算器。譬如輸入 5 + 10 後,系統會輸出 5 + 10 = 15 之樣式。期望操作介面如下:
(B)製作技巧研討: 系統條件需要提供有加、減、乘、除與餘數等五種計算功能。希望系統操作模式能與自然人習慣相符,將運算子置放於兩個運算元中間;也要求運算式必須同一行輸入完畢,如 5 + 10 之格式。系統需要鍵盤一次輸入 3 個元素,第一個為整數,接著是字元符號(+、-、*、/、%),最後再一個整數。由此可見,吾人需利用 Scanner 類別套件才可達成,又 Scanner 沒有讀入字元(Char)的物件方法;需利用讀入字串方法(next()),以字串格式讀入後再將其轉換成字元(charAt() 方法)。3 個運算元素都讀入後,再利用 switch/case 選擇到底輸入哪一個運算子,也相對應執行該運算子的運算。 (C)程式範例:
(D)程式重點分析:
4-7-3 自我挑戰:數字轉換國字程式 (A)程式功能:PM4_7.java 客戶到銀行辦理業務時,常需將數字轉成國字再書寫在傳票上,但國字平常很少使用,客戶大多不會,請製作一套數字轉換國字系統,讓客戶直接查詢即可,期望操作介面如下:
(B)製作技巧提示: 吾人將輸入的數字存放於 value 變數內,再利用 switch/case 處理各種可能數字,並將相對應國字存放於 chinese 變數內。程式片段如下:
|
翻轉工作室:粘添壽
Java 程式設計(一) 含程式邏輯
翻轉電子書系列:
|