02 Java 流程控制語句

Java 中的控制語句有以下三類:

  1. 分支語句:if 和 switch
  2. 循環(huán)語句:while怎囚、do-while和for
  3. 跳轉(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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒲跨,一起剝皮案震驚了整個(gè)濱河市译断,隨后出現(xiàn)的幾起案子授翻,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堪唐,死亡現(xiàn)場離奇詭異巡语,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)淮菠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門男公,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人合陵,你說我怎么就攤上這事枢赔。” “怎么了拥知?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵踏拜,是天一觀的道長。 經(jīng)常有香客問我低剔,道長速梗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任襟齿,我火速辦了婚禮姻锁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猜欺。我一直安慰自己位隶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布开皿。 她就那樣靜靜地躺著钓试,像睡著了一般。 火紅的嫁衣襯著肌膚如雪副瀑。 梳的紋絲不亂的頭發(fā)上弓熏,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音糠睡,去河邊找鬼挽鞠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛狈孔,可吹牛的內(nèi)容都是我干的信认。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼均抽,長吁一口氣:“原來是場噩夢啊……” “哼嫁赏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起油挥,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤潦蝇,失蹤者是張志新(化名)和其女友劉穎款熬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體攘乒,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贤牛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了则酝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殉簸。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖沽讹,靈堂內(nèi)的尸體忽然破棺而出般卑,到底是詐尸還是另有隱情,我是刑警寧澤爽雄,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布椭微,位于F島的核電站,受9級特大地震影響盲链,放射性物質(zhì)發(fā)生泄漏蝇率。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一刽沾、第九天 我趴在偏房一處隱蔽的房頂上張望本慕。 院中可真熱鬧,春花似錦侧漓、人聲如沸锅尘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽藤违。三九已至,卻和暖如春纵揍,著一層夾襖步出監(jiān)牢的瞬間顿乒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工泽谨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留璧榄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓吧雹,卻偏偏與公主長得像骨杂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子雄卷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • if 語句搓蚪,switch 語句,goto 語句丁鹉,循環(huán)語句 [注]流程控制語句是為了實(shí)現(xiàn)程序控制而產(chǎn)生的 一丶if語...
    忘帶充電寶de皮卡丘閱讀 195評論 0 1
  • 鮮花綻放妒潭,給生活增添了色彩悴能,點(diǎn)亮了我的心情。謝謝每一束與我短暫相遇的花兒們杜耙,飄過萎靡暗淡的日子搜骡,再次拿...
    雨中聽荷萍閱讀 211評論 0 1
  • 我一直覺得中華文字自有一種奇異的魅力拂盯,今日回家佑女。心中百轉(zhuǎn)千回,流淌到指尖谈竿,卻緩緩打出一個(gè)歸字团驱。 ...
    少安勿要閱讀 664評論 0 4
  • 雨下的好不用心,時(shí)大空凸、時(shí)小嚎花、時(shí)急、時(shí)緩……不過呀洲,并沒有影響到人們心里的歡樂之情 紊选,有種舊旱遇甘霖,他鄉(xiāng)遇故知的感覺...
    我的文學(xué)夢閱讀 312評論 3 8