日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

java流程控制語句之switch和循環(huán)語句

 流曲頻陽 2016-09-19

1.switch

1
2
3
4
5
6
7
8
9
10
11
12
switch(表達式){
     case 1:
          語句體1;
          break;
     case 2:
          語句體2;
          break;
     ……
     default:
          語句體n;
          break;
}

格式解釋:

    switch表示這是switch語句

        a)表達式的取值:byte,short,int,char

        b)JDK5之后可以是枚舉

        c)JDK7之后可以是String

    case后面跟的是要和表達式進行比較的值

    語句體部分可以是一條或多天語句

    break表示中斷、結(jié)束的意思,可以結(jié)束switch語句

    default語句表示所有情況都不匹配的時候,就執(zhí)行該出的內(nèi)容,和if語句的else相似


執(zhí)行流程

    首先計算出表達式的值

    其次,和case依次比較,一旦有對應(yīng)的值,就會執(zhí)行相應(yīng)的語句,在執(zhí)行的過程中,遇到break就會結(jié)束。

    最后,如果所有的case都和表達式的值不匹配,就會執(zhí)行default語句體部分,然后程序結(jié)束掉。


wkiol1fdnhvqonleaaby8-asmk4879.png


注意事項:

    case后面只能是常量,不能是變量,而且,多個case后面的值不能出現(xiàn)相同的。

    default可以省略,一般不建議。

    break可以省略,一般不建議。

    default可以出現(xiàn)在switch語句的任意位置。

    switch語句的結(jié)束條件:1.遇到break ,2.執(zhí)行到程序的末尾。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.Scanner;
/**
 * 鍵盤錄入一個數(shù)據(jù),根據(jù)這個數(shù)據(jù),我們輸出對應(yīng)的星期幾
 *      鍵盤錄入1,對應(yīng)輸出星期一
 *      鍵盤錄入2,對應(yīng)輸出星期二
 *      ...
 *      鍵盤錄入7,對應(yīng)輸出星期日
 */
public class SwitchDemo {
    public static void main(String[] args){
        Scanner input  = new Scanner(System.in);
        System.out.print("請輸入數(shù)字:");
        int day = input.nextInt();
        String str = "";
        switch(day){
            case 1:
                str = "星期一";
                break;
            case 2:
                str = "星期二";
                break;
            case 3:
                str = "星期三";
                break;
            case 4:
                str = "星期四";
                break;
            case 5:
                str = "星期五";
                break;
            case 6:
                str = "星期六";
                break;
            case 7:
                str = "星期日";
                break;
            default:
                str = "輸入數(shù)據(jù)不合法";
                break ;
        }
        System.out.println(str);
    }
}


在做判斷的時候,我們有兩種選擇,if語句和switch語句,那么,我們到底該如何選擇使用哪種語句呢?

if語句使用場景:

    針對結(jié)果是boolean類型的判斷

    針對一個范圍的判斷

    針對幾個常量值的判斷

switch語句使用場景:

    針對幾個常量值的判斷


2.循環(huán)結(jié)構(gòu)

    循環(huán)語句可以在滿足循環(huán)條件的情況下,反復(fù)執(zhí)行某一段代碼,這段被重復(fù)執(zhí)行的代碼被稱為循環(huán)體語句,當反復(fù)執(zhí)行這個循環(huán)體時,需要在合適的時候把循環(huán)條件修改為false,從而結(jié)束循環(huán),否則循環(huán)將一直執(zhí)行下去,形成死循環(huán)。


循環(huán)語句的組成:

    初始化語句:一條或者多條語句,這些語句完成一些初始化操作。

    判斷條件語句:這是一個boolean表達式,這個表達式能決定是否執(zhí)行循環(huán)體。

    循環(huán)體語句:這個部分是循環(huán)體語句,也就是我們要多次做的事情。

    控制條件語句:這個部分在依次循環(huán)體結(jié)束后,下一次循環(huán)判斷條件執(zhí)行前執(zhí)行。通過用于控制循環(huán)條件中的變量,使得循環(huán)在合適的時候結(jié)束。


3.循環(huán)結(jié)構(gòu)(for循環(huán)語句)

for循環(huán)語句格式: 

1
2
3
for(初始化語句;判斷條件語句;控制條件語句){
    循環(huán)體語句;
}

執(zhí)行流程:

    1.執(zhí)行初始化語句

    2.執(zhí)行判斷條件語句,看其結(jié)果是true還是false,如果是false,循環(huán)結(jié)束;如果是true,循環(huán)執(zhí)行。

    3.執(zhí)行循環(huán)體語句

    4.執(zhí)行控制條件語句

    5.回到2繼續(xù)


wkiol1fdragai7r1aabijocm4pu137.png

    

1
2
3
4
5
6
7
8
9
10
11
/**
 * for循環(huán)
 */
public class ForDemo {
    public static void main(String[] args){
        for(int i = 0;i<4;i++){
            System.out.println("Hello World");
        }
    }
}

注意事項:

    1.判斷條件語句的結(jié)果是一個boolean類型。

    2.循環(huán)體語句如果是一條語句,大括號可以省略;如果是多條語句,大括號不可以省略。建議永遠不要省略。

1
2
3
4
5
6
7
8
9
10
11
/**
 * 在控制臺輸入1-10
 */
public class ForDemo {
    public static void main(String[] args){
        for(int i = 1;i<=10;i++){
            System.out.println(i);
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * 求1-10的和
 */
public class ForDemo {
    public static void main(String[] args){
        int sum = 0;
        for(int i = 1;i<=10;i++){
            sum += i;
        }
        System.out.println(sum);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 * 求1-100的奇數(shù)和偶數(shù)之和
 */
public class ForDemo {
    public static void main(String[] args){
        int odd = 0;
        int even = 0;
        for(int i =0;i<=100;i++){
            if(i %2 == 0){
                even += i;
            }else {
                odd += i;
            }
        }
        System.out.println("奇數(shù)和是"+odd+",偶數(shù)和是"+even);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * 求5的階乘
 *  什么是階乘?
 *      n! = n*(n-1)!
 *      n! = n *(n-1)*(n-2)*...*3*2*1
 */
public class ForDemo {
    public static void main(String[] args){
        int num = 1;
        for (int i =1;i<=5;i++){
            num *= i;
        }
        System.out.println(num);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 * 水仙花數(shù)
 *      所謂的水仙花數(shù)就是一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。
 *      舉例:153就是一個水仙花數(shù)
 *      153 = 1*1*1 + 5*5*5 +3*3*3
 */
public class ForDemo {
    public static void main(String[] args){
        for(int i = 100;i<=999;i++){
            int baiwei = i / 100;
            int shiwei = i / 10 10;
            int gewei = i % 10;
            int result = baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei;
            if(i == result){
                System.out.println(i+"是水仙花數(shù)");
            }
        }
    }
}


4.循環(huán)結(jié)構(gòu)(while循環(huán)語句)

while循環(huán)語句格式:

1
2
3
4
5
初始化語句;
while(判斷條件語句){
    循環(huán)體語句;
    控制條件語句;
}

wkiol1fdvahjxabbaabnqqmhzpq689.png



for循環(huán)和while循環(huán)的區(qū)別?

    使用區(qū)別:控制條件語句所控制的那個變量,在for循環(huán)結(jié)束后,接不能再被訪問到了,而while循環(huán)結(jié)束后,還可以繼續(xù)使用,如果你想繼續(xù)使用,就用while,否則推薦使用for循環(huán),原因是for循環(huán)結(jié)束,該變量就從內(nèi)存中消失,能夠提高內(nèi)存的使用效率。

    場景區(qū)別:for循環(huán)適合針對一個范圍判斷進行操作,當然這個范圍是數(shù)字;而while循環(huán)適合判斷不明確操作。例如:你去跑十圈,就用for循環(huán);你跑到死為止,就用while循環(huán)了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
 *  我國最高山峰是珠穆朗瑪峰:8848米,現(xiàn)在我有一張足夠大的紙張,厚度是0.01米。
 *  請問:我折疊多少次,就可以保證厚度不低于珠穆朗瑪峰的高度?
 *  分析:
 *      1.定義一個統(tǒng)計變量,默認值位0
 *      2.最高山峰是珠穆朗瑪峰:8848米,這是最終的厚度
 *        我現(xiàn)在有一張足夠大的紙張,厚度為:0.01米,這是最初的厚度。
 *      3.我折疊多少次,就可以保障厚度不低于珠穆朗瑪峰的高度
 *        折疊依次有什么變化?就是厚度是以前的2倍。
 *      4.只要每次變化的厚度沒有查過珠穆朗瑪峰的高度,就折疊
 *      5.輸出統(tǒng)計變量
 */
public class WhileDemo {
    public static void main(String[] args){
        int count = 0;
        double end = 8848;
        double start = 0.01;
        while(start < end){
            count ++;
            start *= 2;
        }
        System.out.println(count);
    }
}


5.循環(huán)結(jié)構(gòu)(do...while結(jié)構(gòu))

do...while循環(huán)結(jié)構(gòu)格式:

1
2
3
4
5
初始化條件;
do{
    循環(huán)體語句;
    控制條件語句;
}while(判斷條件語句);

wkiom1fdx2ohbb8eaabw2z0d8pc903.png

循環(huán)結(jié)構(gòu)的區(qū)別及注意事項

    三種循環(huán)語句其實都可以完成一行的功能,也就是說可以等價轉(zhuǎn)換,但還是有小區(qū)別的。do...while循環(huán)至少會執(zhí)行一次循環(huán)體。for循環(huán)和while循環(huán)只有在條件成立的時候才會去執(zhí)行循環(huán)體。

    寫程序優(yōu)先考慮for循環(huán),再考慮while循環(huán),最后考慮do...while循環(huán)。

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * 輸出4行5列的星星
 */
public class ForForDemo {
    public static void main(String[] args){
        for(int i = 0;i<4;i++){
            for(int y = 0;y<5;y++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}


6.跳轉(zhuǎn)控制語句

    java中的goto是保留字,目前不能使用。雖然沒有g(shù)oto可以增強程序的安全性,但是也帶來了很多不便,比如說,我想在某個循環(huán)在某一步的時候就結(jié)束,現(xiàn)在就做不了這件事。為了彌補這個缺陷,java就提供了break,continue和return來實現(xiàn)控制語句的跳轉(zhuǎn)和終端。

    



本文出自 “11831428” 博客,請務(wù)必保留此出處http://11841428.blog.51cto.com/11831428/1853470

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多