- Java與Android移動應(yīng)用開發(fā):技術(shù)、方法與實踐
- 曹化宇
- 1002字
- 2019-12-06 15:39:16
5.4 循環(huán)語句
循環(huán)語句是在滿足條件的情況下能夠重復(fù)執(zhí)行指定代碼塊的語句結(jié)構(gòu)。Java中,主要包括for、while和do-while三種循環(huán)語句。下面分別討論三者。
5.4.1 for語句
for語句的傳統(tǒng)使用格式如下。
for(<初始化循環(huán)控制變量> ; <執(zhí)行條件>; <循環(huán)控制變量每次循環(huán)后的變化>) { <代碼塊> }
先看兩個例子,下面的代碼將計算1~100之間整數(shù)的累加和。

下面的代碼會計算2~100中偶數(shù)的累加和。

請注意,在每次執(zhí)行循環(huán)后,循環(huán)控制變量i的值會加2,這樣就可以直接使用偶數(shù)了。
for語句的另外一種使用方式稱為迭代循環(huán),可以逐一訪問數(shù)組或集合成員,如下面的代碼所示。

代碼執(zhí)行結(jié)果如圖5-3所示。
本例中使用了:符號,其含義可以理解為in(在...中)。在:符號的左邊定義了訪問數(shù)組或集合成員的變量,右邊為數(shù)組或集合對象。代碼的功能就是迭代訪問數(shù)組中的所有成員。
第8章會詳細討論數(shù)組和集合的應(yīng)用。

圖5-3 使用for語句結(jié)構(gòu)進行迭代訪問
5.4.2 while語句
while語句結(jié)構(gòu)的應(yīng)用相對簡單一些,其格式如下。
while(<條件>) { <語句塊> }
結(jié)構(gòu)中,當(dāng)<條件>滿足(true值)時,執(zhí)行<語句塊>;否則,停止執(zhí)行。
使用while語句結(jié)構(gòu)時應(yīng)注意,在<語句塊>中應(yīng)該有改變循環(huán)條件的代碼,否則,循環(huán)就不會停止,形成無限循環(huán),也稱為死循環(huán)。
下面的代碼使用while語句結(jié)構(gòu)計算1~100之間整數(shù)的累加和。

5.4.3 do-while語句
do-while語句與while語句比較相似,只是將循環(huán)條件的判斷放在每次循環(huán)之后,如下面的格式所示。
do { <語句塊> }while(<條件>);
下面的代碼使用do-while語句計算1~100之間整數(shù)的累加和。

5.4.4 break語句與標(biāo)簽
在介紹switch語句結(jié)構(gòu)時,已經(jīng)介紹了break語句的使用,而在循環(huán)語句中,同樣可以使用break語句。
循環(huán)語句結(jié)構(gòu)中,break語句用于終止當(dāng)前循環(huán)。下面的代碼查找大于1000的第一個質(zhì)數(shù)。

代碼執(zhí)行結(jié)果如圖5-4所示。
開發(fā)中,如果使用多層嵌套循環(huán),在滿足條件時可能需要從內(nèi)層循環(huán)直接跳出所有的循環(huán)結(jié)構(gòu)。要實現(xiàn)這一功能,可以將break語句與標(biāo)簽配合使用。
首先,使用標(biāo)簽命名一個代碼塊,如多層循環(huán)結(jié)構(gòu)。然后,在滿足條件時使用“break <標(biāo)簽名>;”語句終止此代碼塊,這樣就可以直接跳出多層循環(huán)結(jié)構(gòu)。下面的代碼演示了這一操作。

代碼執(zhí)行結(jié)果如圖5-5所示。

圖5-4 判斷質(zhì)數(shù)

圖5-5 break語句與標(biāo)簽
代碼中定義的TAG_FOR3就是一個標(biāo)簽,它用于標(biāo)識三層for循環(huán)結(jié)構(gòu)。在最里層,即k循環(huán)中,當(dāng)i、j、k的和大于200而且是質(zhì)數(shù)時,就使用“break TAG_FOR3;”語句直接跳出三層循環(huán)結(jié)構(gòu)。
5.4.5 continue語句
循環(huán)語句中,continue語句的功能是中斷本次循環(huán),如果條件滿足,則執(zhí)行下一次循環(huán)。下面的代碼使用continue語句計算2~100中質(zhì)數(shù)的累加和。

在for循環(huán)語句中,如果i不是質(zhì)數(shù),則使用continue語句中止當(dāng)前循環(huán),如果是質(zhì)數(shù),則累加到sum變量中。代碼執(zhí)行結(jié)果如圖5-6所示。

圖5-6 使用continue語句
- R的極客理想:工具篇
- KnockoutJS Starter
- Visual C#通用范例開發(fā)金典
- 青少年學(xué)Python(第1冊)
- 詳解MATLAB圖形繪制技術(shù)
- Laravel Application Development Blueprints
- Struts 2.x權(quán)威指南
- AV1視頻編解碼標(biāo)準(zhǔn):原理與算法實現(xiàn)
- STM8實戰(zhàn)
- C語言程序設(shè)計實踐
- 進入IT企業(yè)必讀的324個Java面試題
- 原型設(shè)計:打造成功產(chǎn)品的實用方法及實踐
- Using Yocto Project with BeagleBone Black
- 從零開始學(xué)Unity游戲開發(fā):場景+角色+腳本+交互+體驗+效果+發(fā)布
- Clojure編程樂趣