Java学习笔记03

1. 流程控制语句

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。

1.1 分类

  • 顺序结构
  • 判断和选择结构(if, switch)
  • 循环结构(for, while, do…while)

1.2 顺序结构

​ 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

2. 判断结构

2.1 if语句1

格式

if (关系表达式) {
    语句体;
}

执行流程

  1. 计算关系表达式的值
  2. 如果关系表达式的值为true,就执行语句体/如果关系表达式的值为false,就不执行语句体
  3. 继续执行后面的语句

2.2 if语句2

格式

if (关系表达式) {
    语句体1;
} else {
    语句体2;
}

执行流程

  1. 计算关系表达式的值
  2. 如果关系表达式的值为true,就执行语句体1/如果关系表达式的值为false,就执行语句体2
  3. 继续执行后面的语句

2.3 if语句3

格式

if (关系表达式1) {
    语句体1;
} else if (关系表达式2) {
    语句体2;
}
…
} else {
    语句体n+1;
}

执行流程

  1. 计算关系表达式1的值
  2. 如果关系表达式1的值为true,就执行语句体1/如果关系表达式1的值为false,就计算关系表达式2的值
  3. 如果关系表达式2的值为true,就执行语句体2/如果关系表达式2的值为false,就计算关系表达式3的值
  4. 如果所有关系表达式的值都为false就执行语句体n+1
  5. 继续执行后面的语句

3. 选择结构

格式

switch (表达式) {
    case 1:
        语句体1;
        break;
    case 2:
        语句体2;
        break;
    …
    default:
        语句体n+1;
        break;
}

执行流程

  1. 计算表达式的值
  2. 和case后面的值依次比较,遇到对应的值就会执行相应的语句,执行过程中,遇到break就会结束
  3. 如果所有的值都不匹配,就会执行default语句体,然后结束

扩展

  • default语句可以放任意位置,也可以省略

  • 不写break会引发case穿透

  • switch在JDK12中的新特性

    int number = 10;
    switch (number) {
        case 1 -> System.out.println("一");
        case 2 -> System.out.println("二");
        case 3 -> System.out.println("三");
        default -> System.out.println("其他");
    }
    

4. 循环结构

循环语句可以在满足循环条件的情况下,重复执行某一段代码,这段被重复执行的代码称为循环语句。循环时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

4.1 for循环

格式

for (初始化语句; 条件判断语句; 条件控制语句) {
    循环语句;
}

解释

  • 初始化语句:用于表示循环开始时的起始状态
  • 条件判断语句:用于表示循环的条件
  • 循环语句:用于表示循环重复执行的内容
  • 条件控制语句:用于表示循环每次执行变化的内容

执行流程

  1. 执行初始化语句
  2. 执行条件判断语句,如果值为true,继续执行,如果值为false,循环结束
  3. 执行循环语句
  4. 执行条件控制语句
  5. 回到2继续

4.2 while循环

格式

while (条件判断语句) {
    循环语句;
}

4.3 do…while循环

格式

do {
    循环语句;
} while (条件判断语句);

注意:

  • while与do…while的区别:
    • while是先进行判断,满足条件再执行
    • do…while是先执行一次,再进行判断,满足条件再继续执行
  • do…while不常用
  • 循环次数或者循环范围已知时,使用for循环
  • 循环次数和循环范围都未知,但知道循环结束的条件,使用while循环
posted @   KuaiCode  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示