第四章 控制執(zhí)行流程

4.2 if-else

if(Boolean-expression)
    statement
else或者else if
    statement 

4.3 迭代

while(Boolean-expression)
    statement

4.3.1 do-while

do
    statement
while(Boolean-expression)

4.3.2 for

for(initialization; Boolean-expression; step)
    statement

4.3.3 逗號(hào)操作符

Java里唯一用到逗號(hào)操作符的地方就是for循環(huán)的控制表達(dá)式香椎。通過使用逗號(hào)操作符,可以在for語句內(nèi)定義多個(gè)變量,但是它們必須具有相同的類型。

for(int i=1, j=i+10; i<5; i++, j=i*2){
    statement
}

注意:定義多個(gè)變量的這種能力只限于for循環(huán)传透,在其他任何選擇或迭代語句中都不能使用這種方式胳挎。

4.4 Foreach語法

folat[] f = new folat[10];
for(folat x : f){
}

4.5 return

return關(guān)鍵字用途:

  1. 指定一個(gè)方法返回什么值
  2. 導(dǎo)致當(dāng)前的方法退出。

返回void的方法中如果沒有return語句其弊,在該方法的結(jié)尾處會(huì)有一個(gè)隱式的return。

4.6 break和continue

break和continue都用于迭代語句的主體部分膀斋。

  • break:強(qiáng)行退出循環(huán)梭伐,不執(zhí)行循環(huán)中剩余的語句。
  • continue:停止執(zhí)行當(dāng)前的迭代仰担,然后退回循環(huán)起始處糊识,開始下一次迭代。

無限循環(huán)表達(dá)方式:

  • while(true)
  • for(;;)

4.7 臭名昭著的goto

標(biāo)簽:是后面跟著有冒號(hào)的標(biāo)志符。在java中赂苗,標(biāo)簽當(dāng)前僅當(dāng)位于迭代語句之前愉耙。即如果在標(biāo)簽和迭代語句之間置入任何語句,標(biāo)簽將不起作用拌滋。而在java中需要使用標(biāo)簽的唯一理由就是因?yàn)橛醒h(huán)嵌套存在朴沿,而且想從多層嵌套中break或continue。這是由于break和continue關(guān)鍵詞通常只中斷當(dāng)前循環(huán)鸠真,但若隨同標(biāo)簽一起使用悯仙,它們就會(huì)中斷循環(huán),知道標(biāo)簽所在的地方吠卷。

lable1:
outer-iteration{
    inner-iteration{
        ...
        break; //(1)break中斷內(nèi)部迭代锡垄,回到外部迭代。
        ...
        continue; //(2)continue使執(zhí)行點(diǎn)移回內(nèi)部迭代的起始處祭隔。
        ...
        continue lable1;//(3)同時(shí)中斷內(nèi)部迭代以及外部迭代货岭,直接轉(zhuǎn)到lable1處;隨后疾渴,它實(shí)際上是繼續(xù)迭代過程千贯,但卻是從外部迭代開始。
        ...
        break lable1;//(4)會(huì)中斷所有迭代搞坝,并回到lable1處搔谴,但不重新進(jìn)入迭代。也就是說桩撮,它實(shí)際是完全終止了兩個(gè)迭代敦第。
    }
}

規(guī)則:

  1. 一般的continue會(huì)退回最內(nèi)層循環(huán)的開頭,并繼續(xù)執(zhí)行
  2. 帶標(biāo)簽的continue會(huì)到達(dá)標(biāo)簽的位置店量,并重新進(jìn)入緊接在哪個(gè)標(biāo)簽后面的循環(huán)
  3. 一般的break會(huì)中斷并跳出當(dāng)前循環(huán)
  4. 帶標(biāo)簽的break會(huì)中斷并跳出標(biāo)簽所指的循環(huán)

4.8 switch

switch(selector){
    case value1 : statement; break;
    case value2 : statement; break;
    ...
    default : statement; 
}

練習(xí)9 斐波那契數(shù)列

    public static void finbonacci(int x){
        int k;
        for(int i=1,j=1; j<=x; i=j,j=k){
            if(j<x && j==1){
                System.out.println(i);
                System.out.println(j);
                k = i + j;
            }else if(j == x && x == 1){
                k = 1;
            }else{
                k = i + j;
            }
            if(k > x){
                break;
            }else{
                System.out.println(k);
            }
        }
    }
    public static void finbonacci2(int x){
        if(x < 2){
            System.out.println(x);
        }else{
            int i = 1;
            int j = 1;
            System.out.println(i);
            System.out.println(j);
            int k = 1;
            while (k<x){
                k = i + j;
                i = j;
                j = k;
                if(k > x){
                    break;
                }else{
                    System.out.println(k);
                }
            }
        }
    }

練習(xí)10 吸血鬼數(shù)字

    public static void vampireNumber(){
        for(int i=10; i<100; i++){
            for(int j=i; j<100; j++){
                int k = i * j;
                if(k%100 != 0){
                    String strIJ = "" + i + j;
                    String strK = String.valueOf(k);
                    char[] charIJ = strIJ.toCharArray();
                    Arrays.sort(charIJ);
                    char[] charK = strK.toCharArray();
                    Arrays.sort(charK);
                    if (Arrays.equals(charIJ, charK)){
                        System.out.println(i+"X"+j+"="+k);
                    }
               }
            }
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芜果,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子融师,更是在濱河造成了極大的恐慌右钾,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旱爆,死亡現(xiàn)場離奇詭異舀射,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怀伦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門后控,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人空镜,你說我怎么就攤上這事。” “怎么了吴攒?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵张抄,是天一觀的道長。 經(jīng)常有香客問我洼怔,道長署惯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任镣隶,我火速辦了婚禮极谊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘安岂。我一直安慰自己轻猖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布域那。 她就那樣靜靜地躺著咙边,像睡著了一般。 火紅的嫁衣襯著肌膚如雪次员。 梳的紋絲不亂的頭發(fā)上败许,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音淑蔚,去河邊找鬼市殷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛刹衫,可吹牛的內(nèi)容都是我干的醋寝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绪妹,長吁一口氣:“原來是場噩夢啊……” “哼甥桂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起邮旷,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤黄选,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后婶肩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體办陷,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年律歼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了民镜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡险毁,死狀恐怖制圈,靈堂內(nèi)的尸體忽然破棺而出们童,到底是詐尸還是另有隱情,我是刑警寧澤鲸鹦,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布慧库,位于F島的核電站,受9級(jí)特大地震影響馋嗜,放射性物質(zhì)發(fā)生泄漏齐板。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一葛菇、第九天 我趴在偏房一處隱蔽的房頂上張望甘磨。 院中可真熱鬧,春花似錦眯停、人聲如沸济舆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吗冤。三九已至,卻和暖如春九府,著一層夾襖步出監(jiān)牢的瞬間椎瘟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來泰國打工侄旬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肺蔚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓儡羔,卻偏偏與公主長得像宣羊,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子汰蜘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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