前言
人腦比電腦更具思考能力,但重複的工作時間一長,人類就比不上電腦了!繁雜的事情就交給電腦處理,如何安排工作就交給人腦吧!
一、判斷式
電腦執行是一個指令一個指令按照順序執行下去,是不會轉彎的~ 使用判斷式讓程式轉彎吧!
1.1 if 判斷式
◉ if{ }
◉ if{ ... }else{ ... }
◉ if{ ... }else if{ ... }
◉ if{ ... }else if{ ... }else if{ ... }
◉ if{ ... }else if{ ... }else if{ ... }else{ ... }
◉ 只有一句需要執行的語句時,可以省略{}
Scanner 為 Java API,用來讀取資料。
new Scanner(System.in) 建立 Scanner 實例,括號內的 System.in 說明資料來源是從鍵盤輸入。
import java.util.Scanner; 在 Java 中我們使用 . 表示層次結構,所以此聲明將表示 java\util\Scanner。完整的意思是引入 java 資料夾中 util 資料夾中的 Scanner 類別。
輸入兩個數字,根據輸入的兩個數字來決定輸出哪一條語句。

上述的程式碼第10行~第20行可以改寫成 if{ ... }else if{ ... }else{ ... } 形式。
還有幾個 if 的範例可以參考~
◉ 測量體重是否標準
◉ 測量體重是否標準(不分男女)
◉ 測量體重是否標準(BMI)
1.2 switch 判斷式
◉ switch(X){
case y1:
...
[break;]
case y2:
...
[break;]
default:
...
}
◉ X 可以使用的型態為:byte、short、char、int、Enum Type、String、Character、Byte、Short 和 Integer。
◉ 小心 case 穿透,需要配合 break 語句。
◉ 多個 case 可以合併。
◉ default 可以省略,但不推薦省略。

相同語句可以合併,我們把 1 月搬移到 12 月後,刪除某些 break 斷點,簡化程式碼,如下所示:
還有幾個 switch 的範例可以參考~
◉ 判斷月份有幾天
◉ 四則運算,判斷運算符號
二、循環語句
有時候事情要做很多次,或每次只有一點點的差異時,就請電腦傻傻的快速完成它吧!
2.1 while 循環語句

不知道何時終止,使用 while 迴圈。
先判斷邏輯表達式的值。若為 true 則執行其後面的語句,然後再次判斷條件並反覆執行,直到條件不成立為止。

2.2 do while 循環語句

不知道何時終止,且至少要執行一次的,使用 do while 迴圈。
先執行語句,再判斷邏輯表達式的值。若為 true 再執行語句,否則結束迴圈。

2.3 for 循環語句

如果知道執行的次數,我們將使用 for 迴圈。
首先執行(1)初始化迴圈的控制變數後,就重複執行(2) → (3) → (4)。

for 迴圈中(1)、(2)、(4)表達式不一定要放在括號內,接下來要來討論特殊的寫法。
◉ 省略初值與遞增式
◉ 省略判斷式
(請按 Ctrl + C 停止程式)

2.4 break 和 continue 語句
◉ break 語句用於終止某個語句的執行。用在循環語句中,可以強行退出迴圈。

◉ continue 語句用在循環語句中,用於終止某次循環過程,跳過迴圈中 continue 語句下面未執行的循環,開始下一次循環過程。

三、綜合運用
混合判斷式與循環語句,會擦出什麼火花呢?
3.1 當循環語句碰到 switch
◉ 在 switch 內加上 continue。(功能正常)

◉ 在 switch 內加上 break。(無法跳出迴圈)

◉ 如果在 switch 內加上 break 時,想要跳出迴圈,必須搭配「標籤」名稱使用。

3.2 兩層迴圈與 break
◉ 只跳出內迴圈

◉ 加上標籤名稱

◉ 加上標籤名稱 + 大括號

3.3 一些綜合範例
◉ 分數使用等第(A、B、C、D、E)
◉ 找尋三位數的阿姆斯壯數
◉ 骰骰子,統計各點數出現的次數
總結
判斷式:if、switch
循環語句: while、do while、for,控制迴圈的兩個指令 continue 與 break
標籤名稱:
流程控制可以讓程式照著自己的想法彈性運作,好好掌握基礎語法後,就可以把想法實現出來唷!
沒有留言:
張貼留言