条件与回圈控制
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 條件與迴圈控制 - 7
條件運算符號
使用條件運算符號後會直接得到1個值,所以是運算式 (Expression);而if-else架構是一段程式語句,執行後不會 得到1個值,所以稱作敘述句(Statement)。
輸出結果 獲得獎學金10000元!
範例說明 • 第6行:「score >= 85」條件式如果為true,會取得「?」後面第1個值-s1;如 果條件式為false,會取得「?」後面第2個值-s2。
第4章 條件與迴圈控制 - 8
switch-case架構 switch-case依序做值的比對;比對成功,就執行該case的程式 碼,比對都失敗,就會執行default的程式碼。
範例說明 • 第4行:rank的值為5,和所有case的值比對都不成功,所以執行第14行default 的程式碼,執行到第16行break時就直接結束switch區塊。
第4章 條件與迴圈控制 - 16
4-3 特殊流程的處理
break的使用 使用break可以強制結束任何種類的迴圈。
範例說明 • 第3行:設定第5堂課請假。 • 第4行:正常情況下,要從第1堂課上到第8堂課。 • 第5行:當i的值為5,代表上到第5堂課,則if的條件式會得到true,會執行 第7行break,這樣一來就直接跳出迴圈區塊,而達到強制結束第4行for迴圈 的目的。
輸出結果 獲得獎學金10000元!
範例說明 • if-else架構是「單選題」架構,而第4行、第6行、第8行就如同3個選項。當第4 行成立,則第6行、第8行就不予執行。
第4章 條件與迴圈控制 - 5
if-else巢狀式架構
if-else區塊內可以再置入if-else區塊,而形成所謂的if-else巢狀 式架構。
範例說明 • 第4行、第5行條件式為true,因此執行第6行程式碼。
輸出結果 獲得獎學金10000元!
第4章 條件與迴圈控制 - 6
單獨的if架構 在某些邏輯判斷情況下,需要「多重選擇題」的架構,而非ifelse的「單選題架構」。這個時候要改用單獨的if架構。
輸出結果 服用緩和頭暈藥 服用緩和嘔吐藥 範例說明 • 第5行:條件式為true,所以執行第6行程式碼。 • 第7行:條件式為true,所以執行第8行程式碼。
輸出結果 上完第1堂課 上完第2堂課 上完第3堂課 上完第4堂課 蹺課出去玩! 上完第6堂課 上完第7堂課 上完第8堂課
第4章 條件與迴圈控制 - 18
標籤的使用
continue和break作用範圍限制在所在的迴圈,如果使 用巢狀式迴圈,是無法作用到更外層的迴圈;這個時候 可以使用標籤將迴圈命名,也就可以指定continue或 break要作用哪一層的迴圈。 標籤屬於識別字的一種,但必須以「:」(冒號)結尾, 而且只能用在迴圈上。
第4章 條件與迴圈控制 - 14
多個控制變數
如果控制迴圈終止的因素不只一個,就必須依照需求設定多個控 制變數;而控制變數間則以「,」(逗號)區隔。
範例說明 • 第5行: 第1式宣告並給予cnt1、cnt2二個控制變數初始值。 第2式代表cnt1、cnt2二個控制變數的總和不可超過150,否則迴圈結束。 第3式代表每跑1次迴圈,cnt1的數量就累加20,cnt2的數量就累加30。 • 第6行:「\t」的功能如同按下鍵盤上的「Tab」鍵,為了文字對齊而使用。
輸出結果 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 範例說明 • 第3~4行:當i=1時,j會從1遞增到10;當i=2時,j也會從1遞增到10。
第4章 條件與迴圈控制 - 19
範例說明 • 第4行:設定標籤labA來標註迴圈;換句話說,第5行的for迴圈,其名稱就叫 labA。 • 第5行:正常情況下,要從第1堂課上到第8堂課。 • 第6~7行:上到第6堂課時,就要開始跑步訓練,一共要跑5圈。 • 第8行、第10行:假設跑到第3圈時,有學生昏倒了,不需要再上之後的課程, 所以需要執行第10行,利用break加上標籤的功能來強制結束第5行迴圈。
輸出結果 第0天 橘子數量:0 柳丁數量:0 總數量:0 第1天 橘子數量:20 柳丁數量:30 總數量:50 第2天 橘子數量:40 柳丁數量:60 總數量:100 第3天 橘子數量:60 柳丁數量:90 總數量:150 裝滿一箱水果!
第4章 條件與迴圈控制 - 15
巢狀式迴圈 所謂巢狀式迴圈,就是迴圈內再加入迴圈。
第4章 條件與迴圈控制 - 12
do-while迴圈 do-while迴圈會先執行do區塊的程式內容,之後再 做條件式判斷。
輸出結果 11 列印完畢 範例說明 • 第4行:直接執行do區塊的程式內容,而不做任何條件式判斷。 • 第7行:執行到do的結束大括號時,會執行while的條件式判斷,以決 定是否繼續執行do-while迴圈。
輸出結果 1 2 3 4 5 6 7 8 9 10 列印完畢 範例說明 • 第4行:條件式為true,所以執行while區塊內的程式碼。 • 第6行:移除i++則i的值就不會遞增,而會維持在1,這樣會導致無限 迴圈。 • 第7行:執行到while結束大括號,會再執行第4行的條件判斷,直到 條件式為false,才會結束這個while迴圈。
第4章 條件與迴圈控制 - 13
for迴圈 for小括號內共有3式,以「;」(分號)區隔: 1. 第1式:一開始會執行第1式,設定控制變數的初始值。 2. 第2式:設定控制變數的終止值,又稱作條件式。 3. 第3式:設定控制變數的變化量。
輸出結果 1 2 3 4 5 6 7 8 9 10 列印完畢 範例說明 • 一開始執行for迴圈時,會執行第1式「int i=1」;接下來執行第2式 「i<=10」,會得到true,所以進入迴圈區塊內。 • 執行到for的結束大括號時,會先執行for的第3式「i++」,然後再執行第2式 條件式,以判斷是否繼續執行此for迴圈。 • 變數i一直遞增到11才會因為條件式為false而跳出for區塊,結束迴圈執行。
輸出結果 上完第1堂課 上完第2堂課 上完第3堂課 上完第4堂課 上完第5堂課 跑完0圈 跑完1圈 跑完2圈 <<昏倒了,送急診>>
輸出結果 上完第1堂課 上完第2堂課 上完第3堂課 上完第4堂課 身體不適,回家休息!
第4章 條件與迴圈控制 - 17
continue的使用 continue可以強制跳過1次迴圈執行,但不會影 響之後的迴圈執行。
範例說明 • 第3行:設定第5堂課蹺課。 • 第4行:正常情況下,要從第1堂課上到第8堂課。 • 第5行:當i的值為5,代表上到第5堂課,則if的條件式會得到true,會執行 第7行continue,這樣一來就會直接跳到第10行的結束大括號上,代表這次 結束,但會繼續執行下次迴圈內容。
例如:85分以上 獎學金10000元; 未滿85分 沒有獎學金
範例說明 • 第5行:if條件式為true就執行if區塊;條件式為false就執行else區塊。如果if或 else區塊內的程式碼只有1行,則大括!
第4章 條件與迴圈控制 - 4
if-else if-else架構 如果學校多提供1份獎學金給成績介於75~85分的學生,就需 要增加1個else-if區塊。
第4章 條件與迴圈控制
4-1 條件控制 4-2 迴圈控制 4-3 特殊流程的處理
第4章 條件與迴圈控制 - 2
4-1 條件控制
Java的條件控制語法可以分3大類: if-else架構
條件運算符號
switch-case架構
第4章 條件與迴圈控制 - 3
if-else架構 if-else架構可以處理許多邏輯判斷的問題
輸出結果 還要再努力!
第4章 條件與迴圈控制 - 9
如果沒有加上break,switch-case程式會按照正常流程往下執 行,不會造成編譯或執行失敗。
範例說明 • 第4~9行:rank的值為1,和第5行case比對成功後,因為case 1、 case 2都沒有break,所以直接執行第8行程式碼。執行到第9行break 時就直接結束switch區塊。
輸出結果 前3名,獎學金10000元!
第4章 條件與迴圈控制 - 10
4-2 迴圈控制
Java主要有3種迴圈控制: while迴圈 do-while迴圈 for迴圈
第4章 條件與迴圈控制 - 11
while迴圈 while迴圈條件式為true時會執行該迴圈區塊的程式內容,直到 條件式為false,才會結束while迴圈。迴圈區塊內的程式碼只有 1行,則大括號也可以省略。