本文講的內容包括常見的流程控制語句,比如:if else判斷語句、switch選擇語句(擊穿)、for迴圈語句、while迴圈語句、do while迴圈語句、迴圈巢狀、跳出語句break,continue。
流程控制簡介
程式中的流程控制就是**執行次序的安排和控制。
我們可以通過**的結構去控制流程,常見的流程都有對應的**結構:順序流程(結構),選擇流程,迴圈流程。
if else判斷語句
if語句有三種語法格式:
if語句是指如果滿足某種條件就進行某種處理,不滿足就跳過選擇語句,並繼續執行。
if else在if迴圈語句上增加了不滿足條件則執行else部分。
if…else if…else 則是進行多個條件判斷,相對於if else的區別在於,else部分執行的是另乙個if else判斷語句(在不滿足第乙個條件的時候執行第二個)
switch迴圈語句(注意擊穿問題)
switch相對於if條件語句更有針對性,只能針對某個表示式的值做出判斷,從而選擇程式執行哪段**。
switch(表示式)
要注意的是,表示式中的值需要和case中的常量值型別相匹配。
執行流程:
首先計算出表示式的值。
其次,和case一次比較,一旦有對應的值,就會執行響應的語句,在執行過程中,遇到break就會結束。
最後,如果所有的case都和表示式的值不匹配,就會執行default語句體部分,然後把程式結束。
重點:switch的case擊穿:
每條case後如果不加break;跳出語句。就會出現乙個情況,比如:滿足case1,但在case3才遇到break;那麼就會直接執行case3的語句,直到case3遇到的break語句跳出。
for迴圈語句
執行順序:①②③④>②③④>②③④…②不滿足為止。
①負責完成迴圈變數初始化
②負責判斷是否滿足迴圈條件,不滿足則跳出迴圈
③具體執行的語句
④迴圈後,迴圈條件所涉及變數的變化情況
初始化語句中的i可以使用任何數字
判斷語句,一定要保證條件有邊界,否則就是死迴圈了。
控制語句可以變通,也可以使用–,目的是讓迴圈變化量起到變化。
這裡的迴圈變數i出了迴圈結構就不能使用了。
i也可以定義在外面,那麼出了迴圈結構也可以訪問i
while迴圈語句
while迴圈和for迴圈功能一樣,只不過關鍵字不一樣,**結構不一樣。和選擇結構中的if判斷也有點類似,滿足條件就執行 {} 內的語句,區別在於while語句會反覆執行,直到條件不成立。
流程:
do while迴圈語句
while後面有分號結束
無論如何會先執行一次,然後再去做條件判斷是否繼續執行。
執行流程:
psvmwhile(i<=10);
}
注意:while寫在後面,且()後面有分號。
迴圈語句的區別
for和while的區別:
1.**結構不同是最大的區別
控制條件語句所控制的那個變數:
在for迴圈結束後,就不能再被訪問到了。
在while迴圈結束後還可以繼續使用。
變數作用域:這是個程式設計概念,通常來說乙個變數在程式中並不是總有效的,而限定這個變數的可用性的**範圍就是這個變數的作用域。
怎麼找乙個變數的作用域:
1)一般我們只要看下當前這個變數定義的位置在哪兒,找到變數所在的最近一對,從這個變數定義開始到 到右}結束,都是這個變數的作用範圍在作用域範圍之內我們才可以使用.
2)也有特例,比如像for迴圈語句中( )內定義的變數,其作用的範圍只能在for語句結構中。
死迴圈:死迴圈就是迴圈中的條件永遠為true,無法結束。
while死迴圈
while(true)
for死迴圈
for( ; ; )
注意:在編譯過程中若被編譯器認定為死迴圈,那麼在死迴圈下面的程式無法執行,而且會報錯:無法訪問的語句。
迴圈巢狀
迴圈巢狀是指在乙個迴圈語句的迴圈體中再定義乙個迴圈語句的語法結構。while、do while、for迴圈語句都可以進行巢狀,或者互相巢狀
格式:
for(初始化表示式①; 迴圈條件②; 控制條件語句⑦)
}
流程:
假如外層迴圈執行2次,內迴圈執行次數2次執行順序:
第一次迴圈:①②>③④⑤⑥>④⑤⑥>④
第二次迴圈:⑦②>③④⑤⑥>④⑤⑥>④>⑦②
外迴圈一次,內迴圈多次。
在生活中也能隨處可見,比如說我們的鐘錶的指標。時、分、秒指標在周而復始的做運動。我們把秒針和分針拿出來分析。
在一小時裡,分針要走60步。分針沒走一分,秒針就走了60秒。把分針看成是外層迴圈,秒針看成是內層迴圈就很好理解了。
for(int min=0;min<60;min++)
}
總迴圈次數=外迴圈次數*內迴圈次數
跳出語句break,continue
1)break
使用場景:終止switch或者迴圈
-在選擇結構switch語句中
當它出現在switch條件語句中時,作用是終止某個case並跳出switch結構(case中不加break會出現穿透,將switch時講解過)switch結構後面的**。
-在迴圈語句中
當出現在迴圈語句中,作用是終止並跳出迴圈語句,繼續執行迴圈結構後面的**。
注意:當break出現在巢狀迴圈的內層迴圈,它只能跳出內層迴圈,如果要使用break語句跳出到外層迴圈,則需要在外層迴圈的關鍵字前新增標記。
eg:
public static void main(string args)
} y++;
}} `
public static void main(string args)
sum+=i;//不斷累加
}system.out.println(sum);
}`
總結:break跳出其所在迴圈不再執行
continue結束所在迴圈的本次執行,並繼續迴圈。
第三章流程控制語句
if語句 語法 if 表示式 else if 表示式 else switch語句 語法 switch 表示式 注意 1 表示式的值只可以接受int byte char short 型,不接受其他型別的值 2 不允許有重複的case取值 3 switch一旦碰到第一次case匹配,程式就會跳轉到這個標...
第三章 流程控制語句
單一條件 if 布林表示式a a為true 執行b,否者不執行 int itemnum 100 int buynum 1000 if buynum itemnum system.out.println 執行購買商品的業務邏輯 if buynum itemnum system.out.println ...
第三章 流程控制
流程控制結構 這就是語法了 1 了解流程控制語句 實現對程式的執行流程進行控制的一種語句。包括 順序結構 選擇結構 迴圈結構 是否有選擇結構 迴圈結構可以稱為是界定一種語言是否是程式語言的標準。順序流程 順序 程式預設就是這種流程語句,自上而下挨個執行。選擇結構 又稱為分支 轉向 多種條件情況,對應...