Java 中的控制語句有以下三類:
- 分支語句:if 和 switch
- 循環(huán)語句:while怎囚、do-while和for
- 跳轉(zhuǎn)語句:break砸民、continue贰锁、涉及到return和throw關(guān)鍵字的使用
條件語句:
if 型, if else 型, if else嵌套型
如果條件體只有一句話,大括號可以省略但不建議這么做伦忠。
if 語句可以相互間嵌套崇众。
else-if結(jié)構(gòu)實(shí)際上是 if-else 結(jié)構(gòu)的多層嵌套掂僵,它明顯的特點(diǎn)就是在多個(gè)分支中只執(zhí)行一個(gè)語句組,而其他分支都不執(zhí)行顷歌,所以這種結(jié)構(gòu)可以用于有多種判斷結(jié)果的分支中锰蓬。
// else if 示例
if()
xxx
else if()
xxx
else if()
xxx
else
xxx
switch語句
- 其中 expression 必須為
byte
,short
,int
,char
, JDK1.5新增enum
枚舉, JDK1.7新增String
類型 - default實(shí)現(xiàn)所有 case 都沒捕獲到的情況
- case 0: case 1: case 2: { } 實(shí)現(xiàn)了多個(gè)case對應(yīng)一種情況.
- break 不要忘記, 除非有特殊用途, 比如計(jì)算學(xué)生成績區(qū)間的案例中.
case 0:
case 1:
// 該條語句只要滿足 0 or 1都是執(zhí)行哦
break;
case 2: {
// 在case語句塊中加一對花括號也是可以的
}
break;
default:
// 建議所有的switch都加上default子句的情況, 而且default子句建議寫在最后
break;
循環(huán)語句
- 共 3 種 while, do while, for
- for 和 while 循環(huán)是在執(zhí)行循環(huán)體之前測試循環(huán)條件
- Java 5之后推出 foreach 循環(huán)語句,for-each循環(huán)是for循環(huán)的變形眯漩,它是專門為集合遍歷而設(shè)計(jì)的芹扭,注意 foreach 并不是一個(gè)關(guān)鍵字麻顶。
- 循環(huán)體內(nèi)部必須通過語句更改循環(huán)變量的值,否則將會發(fā)生死循環(huán)舱卡。
while 和 do while
// while
while (循環(huán)條件) {
語句組
}
// do while
do {
語句組
} while (循環(huán)條件);
for 循環(huán)
for語句是應(yīng)用最廣泛辅肾、功能最強(qiáng)的一種循環(huán)語句。用于指導(dǎo)固定次數(shù)的循環(huán)
for (初始化; 循環(huán)條件; 迭代) {
語句組
}
提示 初始化轮锥、循環(huán)條件以及迭代部分都可以為空語句(但分號不能省略)宛瞄,三者均為空的時(shí)候,相當(dāng)于一個(gè)無限循環(huán)交胚。代碼如下:
// 使用for, 寫的無限循環(huán)
for (; ;) {
...
}
// 或者這么搞
while (true) {
...
}
for-each語句
Java 5 之后提供了一種專門用于遍歷集合的 for 循環(huán) for-each 循環(huán)份汗。使用for-each循環(huán)不必按照 for 的標(biāo)準(zhǔn)套路編寫代碼,只需要提供一個(gè)集合或數(shù)組就可以遍歷蝴簇。
item 不是循環(huán)變量杯活,它保存了集合中的元素, 他只是一個(gè)臨時(shí)變量, 因此不能做刪除元素和替換元素的工作
跳轉(zhuǎn)語句
break、continue熬词、throw 和r eturn旁钧。本節(jié)重點(diǎn)介紹 break 和 continue 語句的使用。
break語句
break語句可用于上一節(jié)介紹的 while互拾、repeat-while和for循環(huán)結(jié)構(gòu)歪今,它的作用是強(qiáng)行退出循環(huán)體,不再執(zhí)行循環(huán)體中剩余的語句颜矿。
在循環(huán)體中使用break語句有兩種方式:帶有標(biāo)簽和不帶標(biāo)簽寄猩。語法格式如下:
break; //不帶標(biāo)簽
break label; //帶標(biāo)簽,label是標(biāo)簽名, 例如 label: for循環(huán)
continue語句
continue 語句用來結(jié)束本次循環(huán)骑疆,跳過循環(huán)體中尚未執(zhí)行的語句田篇,接著進(jìn)行終止條件的判斷,以決定是否繼續(xù)循環(huán)箍铭。對于for語句泊柬,在進(jìn)行終止條件的判斷前,還要先執(zhí)行迭代語句诈火。
在循環(huán)體中使用continue語句有兩種方式可以帶有標(biāo)簽兽赁,也可以不帶標(biāo)簽。語法格式如下:
continue; //不帶標(biāo)簽
continue label; //帶標(biāo)簽冷守,label是標(biāo)簽名 , 例如 label: while循環(huán)
break添加標(biāo)簽的意義刀崖,添加標(biāo)簽對于多層嵌套循環(huán)是很有必要的,適當(dāng)使用可以提高程序的執(zhí)行效率教沾。
break 和 continue 關(guān)鍵字比較:
- break既用在循環(huán)語句中,也可用在條件選擇語句中的 switch 語句.
- contine 只用在循環(huán)語句中,作用是結(jié)束本次循環(huán),接著繼續(xù)進(jìn)行條件判斷
- break只會跳出最近的內(nèi)循環(huán)
加餐
下列語句是經(jīng)典寫法
if (s == null || i ==s.length())
if (s !=null && i ==s.length())
下列語句可能產(chǎn)生空指針異常
if (s ==null && i ==s.length())
if (s !=null || i ==s.length())
在 Java 編程中使用短路 || 和 短路 &&, 能提高效率. 且 if 括號里面的語句要盡量簡單些, 這樣易讀性會好且不容易出錯(cuò).
參考
- 丁振凡編著,《Java 語言程序設(shè)計(jì)(第2版)》華東交大版,2014.9