java控制循環(huán)結(jié)構(gòu)举哟,break俯渤、continue僧界、return

java提供了break和continue來控制循環(huán)結(jié)構(gòu)侨嘀。除此之外,還提供了return來結(jié)束整個方法捂襟,當然也就結(jié)束了一次循環(huán)咬腕。

使用break結(jié)束循環(huán)

某些時候需要在某種條件下強行終止循環(huán),而不是等到循環(huán)條件為false時才退出循環(huán)葬荷。此時涨共,可以使用break來完成這一動作。break用于完全結(jié)束一個(一層)循環(huán)宠漩,跳出循環(huán)體举反。不管是哪種循環(huán),一旦在循環(huán)體中遇到break扒吁,系統(tǒng)將完全結(jié)束該循環(huán)火鼻,開始執(zhí)行循環(huán)之后的代碼。實例如下:

public class BreakTest {

    public static void main(String args[]) {

        // 一個簡單的測試break的for循環(huán)
        for (int i = 0; i < 3; i++) {

            System.out.println("i 的值為: " + i);
            if (i == 1) {
                break;
            }
        }
    }
}

最后輸出為:

i 的值為: 0
i 的值為: 1

當i的值為1時瘦陈,遇到break凝危,則跳出該循環(huán)。break語句不僅可以跳出其所在的循環(huán)晨逝,還能直接結(jié)束其外層的循環(huán)。此時需要在break后緊跟一個標簽懦铺,這個標簽用于標識外層循環(huán)捉貌。java中的標簽就是一個緊跟這英文冒號(:)的標識符。與其他語言不同的時冬念,java中的標簽只有放在循環(huán)語句之前才有作用趁窃。例如下列代碼:

public class BreakTest {

    public static void main(String args[]) {

        outer:
        for (int j = 0; j < 3; j++) {
            System.out.println("j 的值為: " + j);
            for (int i = 0; i < 3; i++) {

                System.out.println("i 的值為: " + i);
                if (i == 1) {
                    break outer;
                }
            }
        }

    }
}

運行結(jié)果為:

j 的值為: 0
i 的值為: 0
i 的值為: 1

程序從外層循環(huán)進入內(nèi)層循環(huán)后,當i==1時急前,程序就遇到了一個break outer;語句醒陆,這行代碼就會導致結(jié)束break標簽指定的循環(huán),不是結(jié)束break所在的循環(huán)裆针。而是結(jié)束break循環(huán)的外層循環(huán)刨摩,所以看到上面的運行結(jié)果寺晌。
值得指出的是,break后的標簽必須是一個有效的的標簽澡刹,即這個標簽必須在break語句所在的循環(huán)之前定義呻征,或者在其所在循環(huán)的外層循環(huán)之前定義,當然如果把這個標簽放在所在循環(huán)之前定義罢浇,也就失去了標簽的意義陆赋,以為break默認就是結(jié)束其所在的循環(huán)。

使用continue忽略本次循環(huán)剩下的語句

continue的功能和break有點類似嚷闭,區(qū)別是continue知識忽略本次循環(huán)剩下的語句攒岛,接著執(zhí)行下一次循環(huán),并不會終止循環(huán)胞锰;而break則是完全終止循環(huán)本身灾锯。如下程序示范了continue的用法。

public class continueTest {

    public static void main(String args[]) {

        for (int i = 0; i < 3; i++) {

            if (i == 1) {
                continue;
            }

            System.out.println("i 的值為: " + i);

        }
    }

}

執(zhí)行結(jié)果為:

i 的值為: 0
i 的值為: 2

從上面運行結(jié)果來看胜蛉,當i==1時挠进,遇到continue語句,則忽略剩下的語句誊册,繼續(xù)執(zhí)行下一次循環(huán)领突。所以得此結(jié)果。如果把一個continue語句放在單次循環(huán)的最后一句案怯,這個continue語句是沒有任何意義的-因為它僅僅忽略的時一個空白君旦,沒有忽略任何有效的語句。
與break語句類似的是嘲碱,continue后也可以緊跟一個標簽金砍,用于直接跳過過標簽所標識循環(huán)的當次循環(huán)的剩下語句,重新開始下一次循環(huán)麦锯,例如下面代碼:

public class continueTest {

    public static void main(String args[]) {
        outer:
        for (int j = 0; j < 3; j++) {
            System.out.println("j 的值為: " + j);
            for (int i = 0; i < 3; i++) {

                System.out.println("i 的值為: " + i);
                if (i == 1) {
                    continue outer;
                }
            }
        }

    }

}

運行結(jié)果為:

j 的值為: 0
i 的值為: 0
i 的值為: 1
j 的值為: 1
i 的值為: 0
i 的值為: 1
j 的值為: 2
i 的值為: 0
i 的值為: 1

從上面結(jié)果可以知道恕稠,循環(huán)變量i將無法超過1,每當i等于1時扶欣,continue outer鹅巍;語句就結(jié)束了外層循環(huán)的檔次循環(huán)。直接開始下一次循環(huán)料祠,內(nèi)層循環(huán)當然就沒機會執(zhí)行完成骆捧。
與break類似的是,continue狗的標簽也必須是一個有效的標簽髓绽,即這個標簽通常應該放在continue所在循環(huán)的外層循環(huán)之前定義敛苇。

使用return結(jié)束方法

return關(guān)鍵字并不是專門用于結(jié)束循環(huán)的,renturn的功能就是結(jié)束一個方法的顺呕,當一個方法執(zhí)行到return 語句枫攀,這個方法就會結(jié)束括饶,循環(huán)自然也隨之結(jié)束。不管這個循環(huán)有多少層脓豪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巷帝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扫夜,更是在濱河造成了極大的恐慌楞泼,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笤闯,死亡現(xiàn)場離奇詭異堕阔,居然都是意外死亡,警方通過查閱死者的電腦和手機颗味,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門超陆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浦马,你說我怎么就攤上這事时呀。” “怎么了晶默?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵谨娜,是天一觀的道長。 經(jīng)常有香客問我磺陡,道長趴梢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任币他,我火速辦了婚禮坞靶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蝴悉。我一直安慰自己彰阴,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布拍冠。 她就那樣靜靜地躺著硝枉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪倦微。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天正压,我揣著相機與錄音欣福,去河邊找鬼。 笑死焦履,一個胖子當著我的面吹牛拓劝,可吹牛的內(nèi)容都是我干的雏逾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼郑临,長吁一口氣:“原來是場噩夢啊……” “哼栖博!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起厢洞,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤仇让,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后躺翻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丧叽,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年公你,在試婚紗的時候發(fā)現(xiàn)自己被綠了踊淳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡陕靠,死狀恐怖迂尝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剪芥,我是刑警寧澤垄开,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站粗俱,受9級特大地震影響说榆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寸认,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一签财、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧偏塞,春花似錦唱蒸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至古今,卻和暖如春屁魏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捉腥。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工氓拼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓桃漾,卻偏偏與公主長得像坏匪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子撬统,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

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