第六章 流程控制語句

一、順序結構

Java的基本結構就是順序結構湾盒,就是從頭到尾一句一句執(zhí)行的湿右,不用多說。

二历涝、選擇結構

1. 單分支結構

分支結構主要使用if語句來寫诅需,if里面的條件表達式的值必須為布爾類型,后面的if語句都一樣荧库。在單分支結構語句中堰塌,當條件為“真”時,執(zhí)行if里面的代碼分衫,當條件為“假”時场刑,不執(zhí)行if里面的代碼,而會執(zhí)行if后面的代碼蚪战。

單分支結構流程圖:

圖1:單分支結構流程圖

單分支一般結構:

if (condition){
    Expression1;
}
Expression2;

例如用單分支結構返回兩個數的最大值:

public class Demo01 {
    public static void main(String[] args) {
        int a = 12;
        int b = 5;
        if(a>=b){
            System.out.println(a);      //print: 12
        }
        if(a<b){
            System.out.println(b);
        }
    }
}

2. 雙分支結構

雙分支結構主要用if-else語句來寫牵现,在雙分支結構中,當條件為“真”時邀桑,執(zhí)行if后面的代碼瞎疼,當條件為“假”時,執(zhí)行else后面的代碼壁畸。

雙分支結構流程圖:

圖2:雙分支結構流程圖

雙分支一般結構:

if (condition){
    Expression1;
}else{
    Expression2;
}

例如用雙分支結構返回兩個數的最大值:

public class Demo02 {
    public static void main(String[] args) {
        int a = 12;
        int b = 5;
        if (a>b){
            System.out.println(a);
        }else{
            System.out.println(b);
        }
    }
}

3. 多分支結構

多分支結構主要用if-else if-else語句來寫贼急,在多分支結構中茅茂,當前面的條件為“真”時,將不會判斷后面的條件太抓,當前面的條件為“假”時空闲,會繼續(xù)判斷后面的條件,直到符合條件為止走敌。

多分支結構流程圖:

圖3:多分支結構流程圖

多分支一般結構:

if (condition1){
    Expression1;
}else if(condition2){
    Expression2;
    ...
}else if(conditionN){
    Expression N;
}else{
    Expression N+1;
}

例如求學生成績等級碴倾,60分以下的為D,6070分的為C掉丽,7090分的為B跌榔,90分以上的為A,用多分支語句實現(xiàn)如下:

public class Demo03 {
    public static void main(String[] args) {
        int grade = 75;
        if(grade < 60){
            System.out.println("D");
        }else if(grade < 70){
            System.out.println("C");
        }else if(grade < 90){
            System.out.println("B");
        }else{
            System.out.println("A");
        }
    }
}

分析:因為在多分支語句中机打,當布爾語句滿足前面的條件時矫户,會執(zhí)行前面的語句,盡管布爾語句同時也滿足后面的條件残邀,但不會執(zhí)行后面的語句。

4. 多值選擇結構

多值選擇結構的主要用switch-case-default語句來寫柑蛇,在多值選擇結構中芥挣,switch中表達式的值必須與case后面的值類型一致,并且只能是整數或枚舉類型值耻台。當表達式的值與某個case后面的值相等時空免,則執(zhí)行這個case后面的語句,如果表達式的值與所有case后面的值都不相等盆耽,則執(zhí)行default后面的語句蹋砚。語句中的break用于結束多值選擇結構語句,如果沒有break則會從滿足條件的case開始執(zhí)行完整個switch語句摄杂。

多值選擇結構流程圖:

圖4:多值選擇結構流程圖

多值選擇一般結構:

switch(expression){
case value1:
    expression1;
    break;
case value2:
    expression2;
    break;
    ...
case valueN:
    expression N;
    break;
default:
    default_expression;
}

例如求學生成績等級坝咐,60分以下的為D,6070分的為C析恢,7090分的為B墨坚,90分以上的為A,用多值選擇結構語句實現(xiàn)如下:

public class Demo04 {
    public static void main(String[] args) {
        int grade = 75;
        switch(grade/10){
        case 10:
        case 9:
            System.out.println("A");break;
        case 8:
        case 7:
            System.out.println("B");break;
        case 6:
            System.out.println("C");break;
        default:
            System.out.println("D");
        }
    }
}

分析:利用整除的方式映挂,靈活使用break來實現(xiàn)分段處理數據泽篮。

三、循環(huán)結構

1. while

執(zhí)行while循環(huán)結構語句的時候柑船,先判斷while后面的條件是否為“真”帽撑,如果為“真”的話,就會一直執(zhí)行循環(huán)體鞍时,當while條件為“假”時停止亏拉。如果條件一直為“真”历恐,循環(huán)體中又沒有結束循環(huán)的語句時,則會陷入死循環(huán)专筷。

while結構流程圖:

圖5:while結構流程圖

while一般結構:

while(condition){
    loop expression;
}

例如利用while循環(huán)計算1+2+3+...+100的值:

public class Demo05 {
    public static void main(String[] args) {
        int s = 0;
        int i = 1;
        while(i<=100){
            s+=i++;
        }
        System.out.println(s);
    }
}

2. do-while

執(zhí)行do-while循環(huán)結構語句的時候弱贼,先執(zhí)行一循環(huán)體,然后再判斷while后面的條件是否為“真”磷蛹,如果為“真”的話吮旅,則一直執(zhí)行循環(huán)體直到while條件為假時停止。所以不管循環(huán)條件是否滿足味咳,循環(huán)體都會執(zhí)行一遍庇勃。同樣,如果條件一直為“真”槽驶,循環(huán)體中又沒有結束循環(huán)的語句時责嚷,則會陷入死循環(huán)。

do-while結構流程圖:

圖6:do-while結構流程圖

do-while一般結構:

do{
    loop expression;
}while(condition);

例如利用do-while循環(huán)計算1+2+3+...+100的值:

public class Demo06 {
    public static void main(String[] args) {
        int s = 0;
        int i = 1;
        do{
            s+=i++;
        }while(i<=100);
        System.out.println(s);
    }
}

3. for

for循環(huán)語句是支持迭代的一種通用結構掂铐,是最有效罕拂、靈活的循環(huán)結構,在for循環(huán)中全陨,初始化部分可以設置循環(huán)變量的初值爆班,條件判斷部分為任意布爾表達式,迭代因子(步進)表達式可以控制循環(huán)變量的增減辱姨。

for循環(huán)結構流程圖:

圖7:for循環(huán)結構流程圖

for循環(huán)一般結構:

for(initialization; condition; expression){
    expression 1;
}

例如利用for循環(huán)計算1+2+3+...+100的值:

public class Demo07 {
    public static void main(String[] args) {
        int s = 0;
        for(int i=1; i<=100; i++){
            s+=i;
        }
        System.out.println(s);      //print: 5050
    }
}

4. for-each

for-each語句是增強for循環(huán)語句柿菩,在數組或容器中,如果我們只是對內容進行處理雨涛,比如遍歷枢舶,而對下標沒有什么要求的時候,可以考慮使用增強for循環(huán)替久。

比如用foreach遍歷一個數組:

public class Demo08 {
    public static void main(String[] args) {
        int[] a = {1,2,3,4,5};
        for (int i : a) {
            System.out.print(i + "  ");
        }
    }
}
//print: 1  2  3  4  5  

在迭代輸出數組或容器的元素的時候凉泄,foreach語句是個不錯的選擇。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末侣肄,一起剝皮案震驚了整個濱河市旧困,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稼锅,老刑警劉巖吼具,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異矩距,居然都是意外死亡拗盒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門锥债,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陡蝇,“玉大人痊臭,你說我怎么就攤上這事〉欠颍” “怎么了广匙?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恼策。 經常有香客問我鸦致,道長,這世上最難降的妖魔是什么涣楷? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任分唾,我火速辦了婚禮,結果婚禮上狮斗,老公的妹妹穿的比我還像新娘绽乔。我一直安慰自己,他們只是感情好碳褒,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布折砸。 她就那樣靜靜地躺著,像睡著了一般骤视。 火紅的嫁衣襯著肌膚如雪鞍爱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天专酗,我揣著相機與錄音,去河邊找鬼盗扇。 笑死祷肯,一個胖子當著我的面吹牛,可吹牛的內容都是我干的疗隶。 我是一名探鬼主播佑笋,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼斑鼻!你這毒婦竟也來了蒋纬?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤坚弱,失蹤者是張志新(化名)和其女友劉穎蜀备,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體荒叶,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡碾阁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了些楣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脂凶。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡宪睹,死狀恐怖,靈堂內的尸體忽然破棺而出蚕钦,到底是詐尸還是另有隱情亭病,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布嘶居,位于F島的核電站罪帖,受9級特大地震影響,放射性物質發(fā)生泄漏食听。R本人自食惡果不足惜胸蛛,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望樱报。 院中可真熱鬧葬项,春花似錦、人聲如沸迹蛤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盗飒。三九已至嚷量,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逆趣,已是汗流浹背蝶溶。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宣渗,地道東北人抖所。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像痕囱,于是被迫代替她去往敵國和親田轧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容

  • Swift 提供了類似 C 語言的流程控制結構鞍恢,包括可以多次執(zhí)行任務的for和while循環(huán)傻粘,基于特定條件選擇執(zhí)行...
    窮人家的孩紙閱讀 690評論 1 1
  • Swift提供了多種控制流聲明。包括while循環(huán)來多次執(zhí)行一個任務帮掉;if弦悉,guard和switch聲明來根據確定...
    BoomLee閱讀 1,936評論 0 3
  • [The Swift Programming Language 中文版]本頁包含內容: Swift提供了多種流程控...
    風林山火閱讀 555評論 0 0
  • 室外已微風習習警绩,借著貴客的光,有幸品嘗這僅一泡的老茶盅称,30年代的龍馬同慶肩祥。 網上可以搜到一系列的關于同慶號的茶信息...
    天宜閱讀 532評論 0 0
  • 我很開心后室,遇到了一個“干媽”,原來開心不需要多么多么開心混狠,只是受到了關愛岸霹,吃飯都很香,阿姨做飯真的很好吃将饺,她的...
    AK47_10年堅持閱讀 202評論 0 0