Java 控制流程(控制流)

前言

1、条件分支语句

  • if

  • switch

1.1 if

  • 条件分支 ifif else

    1
    2
    3
    if (表达式 1) {
    表达式 2
    }
    1
    2
    3
    4
    5
    if (表达式 1) {
    表达式 2
    } else {
    表达式 3
    }
    1
    2
    3
    4
    5
    6
    7
    if (表达式 1) {
    表达式 2
    } else if (表达式 3) {
    表达式 4
    } else {
    表达式 5
    }

1.2 switch

  • 条件分支 switchswitch case break

  • switch 可以使用 byte,short,int,char,String,enum,但是不能作用在 long 上面。

  • 每个表达式结束,都应该有一个 break。

  • String 在 Java1.7 之前是不支持的,Java 从 1.7 开始支持 switch 用 String 的,编译后是把 String 转化为 hash 值,其实还是整数。

    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
    switch(day) {
    case 1:
    System.out.println("星期一");
    break;
    case 2:
    System.out.println("星期二");
    break;
    case 3:
    System.out.println("星期三");
    break;
    case 4:
    System.out.println("星期四");
    break;
    case 5:
    System.out.println("星期五");
    break;
    case 6:
    System.out.println("星期六");
    break;
    case 7:
    System.out.println("星期天");
    break;
    default: // 默认匹配
    System.out.println("这个是什么鬼?");
    break;
    }

2、循环语句

  • while

  • for

  • for-each

2.1 while

  • 循环语句 whilewhile、do while

  • while 条件为 true 时 重复执行。

  • do while 条件为 true 时 重复执行,无论是否成立,至少会执行一次。

    1
    2
    3
    4
    5
    6
    // 打印 0 到 4    
    int i = 0;
    while(i < 5) {
    System.out.println(i);
    i++;
    }
    1
    2
    3
    4
    5
    6
    // 打印 0 到 4,与 while 的区别是,无论是否成立,先执行一次,再进行判断
    int i = 0;
    do {
    System.out.println(i);
    i++;
    } while(i < 5);

2.2 for

  • 循环语句 forfor

    1
    2
    3
    4
    // 使用 for 打印 0 到 4    
    for (int j = 0; j < 5; j++) {
    System.out.println("for 循环输出的" + j);
    }

2.3 增强型 for 循环

  • 增强型 for 循环for-each

  • 增强型 for 循环在遍历一个数组的时候会更加快捷。

  • 增强型 for 循环只能用来取值,却不能用来修改数组里的值。

    1
    2
    3
    4
    5
    6
    int values[] = new int[]{18, 62, 68, 82, 65, 9};

    // 增强型 for 循环遍历
    for (int val : values) {
    System.out.println(val);
    }
    1
    2
    3
    4
    5
    6
    7
    8
    enum Season {
    SPRING, SUMMER, AUTUMN, WINTER
    }

    // 增强型 for 循环遍历
    for (Season s : Season.values()) {
    System.out.println(s);
    }

3、控制转向语句

  • continue

  • break

  • break TAG

3.1 结束当前循环,继续下一次循环

  • 继续下一次循环continue

    1
    2
    3
    4
    5
    6
    7
    8
    for (int j = 0; j < 10; j++) {

    if (0 == j%2) {
    continue; // 如果是双数,后面的代码不执行,直接进行下一次循环
    }

    System.out.println(j);
    }

3.2 结束当前循环

  • 结束当前循环break

    1
    2
    3
    4
    5
    6
    7
    8
    for (int j = 0; j < 10; j++) {

    if (0 == j%2) {
    break; // 如果是双数,直接结束循环
    }

    System.out.println(j);
    }

3.3 结束外部循环

  • 使用 boolean 变量结束外部循环

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    boolean breakout = false;                // 是否终止外部循环的标记

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

    for (int j = 0; j < 10; j++) {

    if (0 == j % 2) {
    breakout = true; // 终止外部循环的标记设置为 true
    break;
    }
    }

    if (breakout) { // 判断是否终止外部循环
    break;
    }
    }
  • 使用标签结束外部循环

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    outloop:                                 // 在外部循环的前一行,加上标签,outloop 这个标示是可以自定义的,比如 outloop1, ol2, out5
    for (int i = 0; i < 10; i++) {

    for (int j = 0; j < 10; j++) {

    if (0 == j%2) {
    break outloop; // 在 break 的时候使用该标签,即能达到结束多重嵌套循环的效果
    }
    }
    }
文章目录
  1. 1. 前言
  2. 2. 1、条件分支语句
    1. 2.1. 1.1 if
    2. 2.2. 1.2 switch
  3. 3. 2、循环语句
    1. 3.1. 2.1 while
    2. 3.2. 2.2 for
    3. 3.3. 2.3 增强型 for 循环
  4. 4. 3、控制转向语句
    1. 4.1. 3.1 结束当前循环,继续下一次循环
    2. 4.2. 3.2 结束当前循环
    3. 4.3. 3.3 结束外部循环
隐藏目录