Java 流程控制语句(详细介绍)

一、简介

在 Java 中,流程控制语句可以使 Java 程序能够根据不同的情况做出操作、重复执行任务、提前结束执行或跳过某些操作,从而实现更加复杂和灵活的程序逻辑。


二、条件语句

在 Java 中,条件语句主要有 if 语句、if - else 语句、 if - else if - else 语句和 switch 语句,它们用于根据不同的条件执行不同的代码块。

2.1 if

语法结构

if (条件表达式) {
    代码块
}

⚠️当条件表达式的值为 true 时,执行语句块中的代码;如果为 false,则不执行语句块中的代码,直接跳过。

代码示例

public class Main {
    public static void main(String[] args) {
        int num = 10;

        if (num > 5) {
            System.out.println("num 大于 5");
        }
    }
}

运行结果:

num 大于 5

2.2 if - else

语法结构

if (条件表达式) {
    语句块1
} else {
    语句块2
}

⚠️当条件表达式的值为 true 时,执行语句块1中的代码;如果为 false,则执行语句块2中的代码。

代码示例

public class Main {
    public static void main(String[] args) {
        int num = 10;

        if (num < 5) {
            System.out.println("num 大于 5");
        }else {
            System.out.println("num 不大于 5");
        }
    }
}

运行结果:

num 不大于 5

2.3 if - else if - else

语法结构

if (条件表达式1) {
    语句块1
} else if (条件表达式2) {
    语句块2
} else {
    语句块3
}

⚠️可以进行多个条件的判断。依次判断条件表达式,当某个条件表达式为 true,则执行对应的语句块;如果所有条件表达式都为 false,则执行 else 后的语句块。

代码示例

public class Main {
    public static void main(String[] args) {
        int num = 10;

        if (num > 15) {
            System.out.println("num 大于 15");
        } else if (num > 5) {
            System.out.println("num 大于 5 但不大于 15");
        } else {
            System.out.println("num 不大于 5");
        }
    }
}

运行结果:

num 大于 5 但不大于 15

2.4 switch

switch 语句通过将表达式的值与 case 后面的常量值进行匹配来确定执行的代码块,表达式通常是整数类型、枚举类型或者 String 类型(从 Java 7 开始支持)。

语法结构

switch(表达式) {
    case1:
        // 当表达式的值等于值1时执行的代码
        break;
    case2:
        // 当表达式的值等于值2时执行的代码
        break;
    // 可以有多个 case 语句
    default:
        // 当表达式的值与所有 case 中的值都不匹配时执行的代码
}

⚠️匹配过程遵循以下规则:

  1. 首先计算 switch 后面表达式的值;
  2. 然后将该值与每个 case 后面的常量值进行比较。如果找到匹配的 case ,则从该 case 处开始执行代码,直到遇到 break 语句或者 switch 语句结束;
  3. 如果没有找到匹配的 case ,则执行 default 分支(如果存在)。
public class Main {
    public static void main(String[] args) {
        int num = 2;
        switch (num) {
            case 1:
                System.out.println("这是 1");
                break;
            case 2:
                System.out.println("这是 2");
                break;
            case 3:
                System.out.println("这是 3");
                break;
            default:
                System.out.println("没有匹配的");
        }
    }
}

运行结果:

这是 2

case 穿透:

因为 case 语句中缺少 break 语句所导致的错误结果。

public class Main {
    public static void main(String[] args) {
        int num = 2;
        switch (num) {
            case 1:
                System.out.println("这是 1");
            case 2:
                System.out.println("这是 2");
            case 3:
                System.out.println("这是 3");
                break;
            default:
                System.out.println("没有匹配的");
        }
    }
}

运行结果:

这是 2
这是 3

如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,直到后续的 case 语句块中有 break 关键字才会中断 switch。

新特性

在 JDK12 的版本,可以简写 switch 语句,如下所示:

public class Main {
    public static void main(String[] args) {
        int num = 2;
        switch (num) {
            case 1 -> System.out.println("这是 1");
            case 2 -> System.out.println("这是 2");
            case 3 -> System.out.println("这是 3");
            default -> System.out.println("没有匹配的");
        }
    }
}

运行结果:

这是 2

这种书写方式是 JDK12 出现的,所以比之低的版本的JDK是不可以使用的,默认自带了 break 语句,不需要在代码里书写,并且如果代码块只有一条语句,大括号也可以不写。


三、循环语句

在 Java 中,循环语句主要有 for 循环、while 循环和 do - while 循环,用于重置执行同样的操作或循环遍历数据。

3.1 for

for 循环相较于其他两种循环结构,for 循环的结构清晰,常用于已知循环次数的情况,并且可以处理下标。

语法结构

for (初始化表达式; 条件表达式; 更新表达式) {
    循环体
}

⚠️ 匹配过程遵循以下规则:

  1. 初始化表达式在循环开始时执行一次,通常用于初始化循环变量;
  2. 条件表达式在每次循环开始前进行判断,如果为 true,则执行循环体;如果为 false,则结束循环;
  3. 更新表达式在每次循环体执行完后执行,通常用于更新循环变量,之后重复执行第2步的操作。
public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
        }
    }
}

运行结果:

0
1
2
3
4

3.2 while

while 循环相较于 for 循环,用于不知道循环次数的情况,循环体内必须有改变条件表达式值的操作,否则可能会导致死循环。

语法结构

while (条件表达式) {
    循环体
}

⚠️ 匹配过程遵循以下规则:

  1. 先判断条件表达式,如果为 true,则执行循环体;如果为 false,则直接结束循环;
  2. 然后重复执行第1步操作。
public class Main {
    public static void main(String[] args) {
        int i = 0;
        while (i < 5) {
            System.out.println(i);
            i++;
        }
    }
}

运行结果:

0
1
2
3
4

3.3 do - while

do - while 循环相较于 while 循环,do - while 循环无论条件表达式一开始是否为 true,循环体至少会执行一次,用于不知道循环次数、不管是否为 true 都执行的情况。

语法结构

do {
    循环体
} while (条件表达式);

⚠️ 匹配过程遵循以下规则:

  1. 先执行一次循环体,然后再判断条件表达式。如果为 true,则继续执行循环体;如果为 false,则结束循环;
  2. 然后重复执行第1步操作。
public class Main {
    public static void main(String[] args) {
        int i = 0;
        do {
            System.out.println(i);
            i++;
        } while(i < 5);
    }
}

运行结果:

0
1
2
3
4

四、跳转语句

在 Java 中,跳转语句主要有 break 关键字、continue 关键字和 return 关键字,用于根据特定条件灵活地改变程序的执行次序。

4.1 break

break 用于跳出循环或 switch 语句。

public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            // 当i的值为5时,终止循环
            if (i == 5) {
                break;
            }
            System.out.println(i);
        }
    }
}

运行结果:

0
1
2
3
4

4.2 continue

continue 用于跳过当前循环中的剩余语句,直接进入下一次循环。

public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            // 当i的值为5时,跳过本次循环
            if (i == 5) {
                continue;
            }
            System.out.println(i);
        }
    }
}

运行结果:

0
1
2
3
4
6
7
8
9

4.3 return

return 用于从方法中返回值,并结束方法的执行。它和 break 关键字不是一个量级的,return 会直接终止当前所在的方法,而 break 只是终止循环或 switch。

public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            // 当i的值为5时,终止当前方法
            if (i == 5) {
                return;
            }
            System.out.println(i);
        }

        System.out.println("这里的代码不会执行");
    }
}

运行结果:

0
1
2
3
4

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生派蒙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值