什麼叫流程?
我們去找工作,簡歷被某家公司看到後。先是前臺打電話約見面時間,然後去公司,第一輪筆試,若是沒通過,直接回家;若是通過了,進入第二輪項目主管面試。若是沒通過,直接回家,若是通過了,要麼被錄取,要麼第二輪第三輪面試。
這一段描述下來,找工作面試的過程就是流程。公司對面試人員的安排就叫做流程的控制。
在程序中也是一樣的道理。
一、順序結構
打電話、筆試、一面、二面、錄取這就是順序結構。
在程序中,其執行的順序由代碼編寫的順序控制,從上到下執行。
這也是最簡單最基礎的一種結構。
二、選擇結構
還是以面試為例子,面試官會根據面試者的筆試成績選擇是否將他留下,這就涉及到選擇結構了。
在Java代碼中存在一種特殊的語句,叫做選擇語句,對一些條件做出判斷,從而選擇對應的代碼執行。這種由選擇語句組成的代碼結構就是選擇結構。
選擇語句有:if條件語句和switch條件語句。
1.if語句
if即如果的意思,如果筆試成績達到80分,就進入面試,要用代碼實現如下:
執行流程:
首先判斷布爾表達式看其結果是true還是false如果是true就執行語句體如果是false就不執行語句體
2.if…else語句
if ...else 語句是指如果滿足某種條件就進行某種處理,否則就進行另外一種處理。
執行流程
首先判斷布爾表達式看其結果是true還是false如果是true就執行語句體1如果是false就執行語句體2
3.與三元運算符的互換
if…else語句和昨天學習的三元運算符效果是一樣的
4.if…else if…else if…else語句
if…else if…else if…else可以對多個條件進行判斷,進行多種不同的處理。
執行流程
首先判斷布爾表達式1看其結果是true還是false如果是true就執行語句體1如果是false就繼續判斷布爾表達式2看其結果是true還是false如果是true就執行語句體2如果是false就繼續判斷布爾表達式…看其結果是true還是false…如果沒有任何布爾表達式為true,就執行後面的與語句體。
5.switch語句
switch也是一種選擇語句,和if不同的是,switch只能判斷某個表達式的值,從決定執行那段代碼。
下面就用一個判斷星期幾的例子介紹下switch語句。
注意事項
表達式中的值要與case中的值數據類型一致。在switch中的表達式只能是byte、short、int、char、Enum(枚舉值)、String(字符串)。用其它的類型值編譯會報錯。break不能漏寫,否則會出現case的穿透,改變邏輯。執行流程
首先計算出表達式的值其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。最後,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然後程序結束掉。
6.case的穿透性
在switch語句中,若是case後面沒有寫break,將會出現穿透現象,不在判斷下面的值,而是直接往下運行,直到遇到break為止,或者整體switch結束,這就是case的穿透性。
這不是bug,能夠用來解決某些需求。
例如,周一到周五是工作日,周六周日是雙休日。
三、循環結構
什麼叫循環結構呢?
最常見的例子就是鐘錶了,每天從0點到24點不停地循環。
在Java語言中,有一種特殊的語句叫做循環語句,可以實現代碼的重複執行,這種由循環語句形成的結構就是循環結構。
1.for循環
例子:循環列印10遍「HelloWorld」
執行流程:
執行順序:①②③④>②③④>②③④…②不滿足為止。①為初始化語句(int i=0)②為判斷語句(i<10?),不滿足則跳出循環③為循環體,滿足判斷條件就執行④為控制條件語句,循環後變量會變化格式:
格式是靈活變通的,三種格式都可以使用
2.while循環
和for循環是一樣的,只不過關鍵字不一樣
執行流程:
執行順序:①②③④>②③④>②③④…②不滿足為止。①為初始化語句(int i=0)②為判斷語句,不滿足直接跳出循環③為循環體,滿足判斷條件就執行④為控制條件語句,循環後變量會變化3.do…while循環語句
do…while語句特點:
while後面有分號結束(切記)無論如何,循環體語句都會先執行一次,再去判斷條件滿不滿足
執行流程:
執行順序:①②③>④②③>④②③…④不滿足為止。①是初始化語句(int i=0)②是循環體語句(先執行一次,後面判斷條件滿足再執行)③是控制條件語句,循環後變量會變化④是判斷語句,不滿足條件循環就會跳出4.循環語句的區別
由上可以看出:
變量i在for循環外就不能訪問了(for循環的常規格式不能訪問,for循環的其他兩種格式也能訪問)變量i在while循環外也能被訪問由此可以引申一個概念:變量作用域
也就是說一個變量在某個範圍內才有效,超出這個範圍就不能訪問了,這個範圍就是該變量的作用域。
一般變量的作用域就是和它最近的一個大括號內。
也有特例就是上面說的for循環,只在循環內有效。
5.死循環
什麼叫死循環?
就是判斷語句永遠為true,死循環不會結束循環,會一直循環下去
DOS系統中,若是出現死循環,可以按Ctrl+C結束死循環。
6.嵌套循環
顧名思義,在一個循環語句裡面再定義一個循環語句,就是嵌套循環。
for,while,do…while都可以進行嵌套循環,它們之間也可以相互嵌套,最常見的就是在for循環中嵌套for循環。
比如說每天時間的變化就使用到了嵌套循環:
7.break
在switch語句中:
作用是終止某個case並跳出,沒有break,會出現case穿透。
在循環語句中:
作用是跳出循環語句,並繼續執行循環結構後面的代碼。
在嵌套循環中:
作用是只能跳出當前的循環語句,不能跳出外層循環語句。
如果想跳出外層循環,可以在外層循環的關鍵字前加上標記。
在鬧鐘定時,就可以使用到這個:
8.continue(繼續)
continue的作用是指:結束本次循環,繼續下一次循環。
比如:對[1,100]區間內的奇數求和,並列印出來
總結
關注並私信我,發送文字「學習」即可獲取精品學習資料