官术网_书友最值得收藏!

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語句

主站蜘蛛池模板: 崇州市| 清水河县| 德钦县| 玉林市| 绥芬河市| 自贡市| 荃湾区| 沂南县| 伽师县| 清水河县| 周宁县| 儋州市| 武功县| 谢通门县| 托克托县| 浮山县| 搜索| 晋中市| 巴林右旗| 阳泉市| 辉南县| 泰宁县| 丹东市| 道真| 洪湖市| 珠海市| 定南县| 长子县| 渭南市| 永川市| 平原县| 北辰区| 罗江县| 吉安县| 东乡族自治县| 文安县| 仪陇县| 平遥县| 苍梧县| 阿拉善右旗| 西盟|