流程控制語句
流程控制語句
@(Java學習)
在學習控制結構之前,瞭解一下塊(block)的概念。
塊(即複合語句)是指由一對大括號括起來的若干條簡單的Java語句。
- 塊確定了變數的作用域。
- 一個塊可以巢狀在另一個塊中。
- 不能在巢狀的兩個塊中宣告同名的變數。
一、條件語句
Java有兩種分支結構:
- if語句
- switch語句
1.1 Java條件語句之if
對於“需要先判斷條件,條件滿足後才執行的情況”,可以使用if條件語句實現。
一個if語句包含一個布林表示式和一條或多條語句。
語法:
if(條件){
條件成立時執行的程式碼
}
執行過程:
1.2Java條件語句之if......else
if......else語句的操作比if語句多了一步:當條件成立時,則執行if部分的程式碼塊;條件不成立時,則進入else部分。
語法:
if(條件的布林表示式){
程式碼塊1
}else{
程式碼塊2`enter code here`
}
執行過程:
1.3Java條件語句之多重if
if語句後面可以跟elseif...else語句,這種語句可以檢測到多種可能的情況。使用時需要注意下面幾點:
- if語句至多有1個else語句,else語句在所有的elseif語句之後;
- if語句可以有若干個elseif語句,必須在else語句之前;
- 一旦其中一個elseif語句檢測為true,其他的elseif以及else語句都將跳過執行。
語法:
if(條件1){
程式碼塊1
}else if(條件2){
程式碼塊2
}else{
程式碼塊3
}
執行過程:
1.4Java條件語句之巢狀if
使用巢狀的if-else語句是合法的。也就是說可以在另一個if或者elseif語句中使用if或者elseif語句。巢狀if語句,只有當外層if的條件成立時,才會判斷內層if的條件。
語法:
if(條件1){
if(條件2){
程式碼塊1
}else{
程式碼塊2
}
}else{
程式碼塊2
}
執行過程:
1.5Java條件語句之switch
當需要對選項進行等值判斷時,使用if......else....結構就顯得有些笨拙,使用switch語句更加簡潔明瞭。switch語句判斷一個變數與一系列值中某個值是否相等,每個值稱為一個分支。
語法:
switch(表示式){
case 值1:
執行程式碼塊1
break;
case 值2:
執行程式碼塊2
break;
case 值n;
執行程式碼塊n
break;
default:
預設執行的程式碼
}
執行過程:
當switch後表示式的值和case語句後的值相同時,從該位置開始向下執行,直到遇到break語句或者switch語句塊結束;如果沒有匹配的case語句則執行default塊的程式碼。
switch語句有如下規則:
- switch語句中的變數型別只能為byte、short、int或者char。
- case標籤也可以是列舉變數,從Java SE7開始,case標籤還可以是字串字面量。
- switch語句可以擁有多個case語句。每個case後面跟一個要比較的值和冒號。
- case語句中的值的資料型別必須與變數的資料型別相同,而且只能是常量或者字面常量。
- 當變數的值與case語句的值相等時,那麼case語句之後的語句開始執行,直到break語句出現才會跳出switch語句。
- 當遇到break語句時,switch語句終止。程式跳轉到switch語句後面的語句執行。case語句不必須要包含break語句。如果沒有break語句出現,程式會繼續執行下一條case語句,直到出現break語句。
- switch語句可以包含一個default分支,該分支必須是switch語句的最後一個分支。default在沒有case語句的值和變數值相等的時候執行。default分支不需要break語句。
二、迴圈語句
順序結構的程式語句只能被執行一次。如果想要同樣的操作執行多次,就需要使用迴圈結構。
Java中常用的迴圈結構如下:
- while迴圈
- do...while迴圈
- for迴圈
2.1Java迴圈語句之while
while是最基本的迴圈。
語法:
while(判斷條件){
迴圈操作
}
執行過程:
- 判斷while後面的條件是否成立(true/false);
- 當條件成立時,執行迴圈內的操作程式碼,然後重複執行1、 2、,直到迴圈條件不成立為止。
特點:
先判斷,後執行。
2.2Java迴圈語句之do...while
do...while迴圈和while迴圈相似,對於while語句而言,如果不滿足條件,則不能進入迴圈。不同的是,do...while迴圈至少會執行一次。
語法:
do{
迴圈操作
}while(判斷條件);
執行過程:
- 先執行一遍迴圈操作,然後判斷迴圈條件是否成立;
- 如果條件成立,繼續執行1、 2,直到迴圈條件不成立為止。
特點:
先執行,後判斷
注意:
- 布林表示式在迴圈體的後面,所以語句塊在檢測布林表示式之前已經執行了。如果布林表示式的值為true,則語句塊一直執行,直到布林表示式的值為false。
2.3Java迴圈語句之for
雖然所有迴圈結構都可以用while或者do...while表示,但Java提供了另一種語句——for迴圈,使一些迴圈結構變得更加簡單。for迴圈執行的次數是在執行前就確定的。
語法:
for(迴圈變數初始化;迴圈條件;迴圈變數變化){
迴圈操作
}
執行過程:
- 執行迴圈變數初始化部分,設定迴圈的初始狀態,此部分在整個迴圈中只執行一次;
- 進行迴圈條件的判斷,如果條件為true,則執行迴圈體內程式碼;如果為false,則直接退出迴圈;
- 執行迴圈變數變化部分,改變迴圈變數的值,以便進行下一次條件判斷;
- 依次重新執行2/3/4、直到退出迴圈。
特點:
相比while和do...while語句結構更加簡潔易讀。
注意:
- for關鍵字後面括號中的三個表示式必須用";"隔開,三個表示式都可以省略,但";"不能省略。
- 省略“迴圈變數初始化”,可以在for語句之前由賦值語句進行變數初始化操作;
- 省略“迴圈條件”,可能會造成迴圈將一直執行下去,也就是我們常說的“死迴圈”現象;
- 省略“迴圈變數變化”,可以在迴圈體中進行迴圈變數的變化。
- for迴圈變數初始化和迴圈變數變化部分,可以是使用“;”同時初始化或者改變多個迴圈變數的值。
- 迴圈條件部分可以使用邏輯運算子組合的表示式,表示複雜判斷條件,但一定注意運算的優先順序。
2.3.1增強for迴圈
Java5引入了一種主要用於陣列的增強型for迴圈。
語法:
for(宣告語句: 表示式){
執行程式碼
}
- 宣告語句:宣告新的區域性變數,該變數的型別必須和陣列元素的型別匹配。其作用域限定在迴圈語句塊,其值與此時陣列元素的值相等。
- 表示式:表示式是要訪問的陣列名,或者是返回值為陣列的方法。
三、迴圈跳轉
3.1Java迴圈跳轉語句之break
在Java中,可以使用break語句退出指定的迴圈,直接執行迴圈後面的程式碼。
break主要用在迴圈語句或者switch語句中,用來跳出整個語句塊。break跳出最裡層的迴圈,並且繼續執行該迴圈下面的語句。
語法:
break的用法很簡單,就是迴圈結構中的一條語句。
break;
Java還提供了一種帶標籤的break語句,用於跳出多重巢狀的迴圈語句。標籤必須放在希望跳出的最外層之前,並且必須緊跟一個冒號。
語法:
label:
{
//邏輯程式碼
if(condition)break label;//退出迴圈
//邏輯程式碼
}
3.2Java迴圈跳轉語句之continue
continue適用於迴圈控制結構。
continue的作用是跳過迴圈體剩餘的語句執行下一次迴圈。
- 在for迴圈中,continue語句使程式立即跳轉到更新語句。
- 在while或者do...while迴圈中,程式立即跳轉到布林表示式的判斷語句。
語法:
continue就是迴圈體中一條簡單的語句。
continue;
注意:
- continue與break語句一樣,中斷正常的控制流程。continue語句將控制轉移到最內層迴圈的首部。
- 如果將continue語句用於for迴圈中,就可以跳到for迴圈的“更新”部分。
- 也有一種帶標籤的continue語句,將跳到與標籤匹配的迴圈首部。
學海無涯苦作舟
相關文章
- Java流程控制語句Java
- 【分支流程控制語句、迴圈流程控制語句】的學習
- ### 流程控制語句結構
- 流程控制語句結構
- python之流程控制語句Python
- 流程控制、 迴圈語句
- Python流程控制語句詳解Python
- Java基礎 - 流程控制語句Java
- JavaScript常用的流程控制語句JavaScript
- 『忘了再學』Shell流程控制 — 39、特殊流程控制語句
- Linux下邏輯測試語句引數和流程控制語句 if語句Linux
- Python中流程控制語句有哪些?Python
- python三種流程控制的語句Python
- php有幾種流程控制語句PHP
- JavaScript 流程控制語句詳解:if語句、switch語句、while迴圈、for迴圈等JavaScriptWhile
- go 流程控制之switch 語句介紹Go
- JavaScript的流程控制語句以及函式JavaScript函式
- 1.4js中流程控制語句.htmlJSHTML
- JavaScript statement flow control || JavaScript 語句流程控制JavaScript
- flask之控制語句 if 語句與for語句Flask
- 控制語句
- 2-4 Java流程控制——迴圈語句Java
- Lua流程控制語句if else的使用詳解
- PHP快速上手(04):PHP流程控制語句01PHP
- 『無為則無心』Python基礎 — 13、Python流程控制語句(條件語句)Python
- 『無為則無心』Python基礎 — 15、Python流程控制語句(for迴圈語句)Python
- Java 控制語句Java
- python 控制語句Python
- 第 7 節:流程控制-迴圈練習-跳出語句
- Python3-流程控制語句、迭代器、生成器Python
- JavaScript之流程語句JavaScript
- 複雜控制語句
- 2 控制流語句
- 使用者互動、算術運算子、流程控制語句
- Mysql系列第十七講 流程控制語句(高手進階)MySql
- sql查詢語句流程SQL
- 『忘了再學』Shell流程控制 — 34、if條件判斷語句(二)
- 『忘了再學』Shell流程控制 — 35、多分支case條件語句