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循环

Java学习笔记03的更多相关文章

  1. 【8-21】java学习笔记03

    内部类(静态内部类&非静态内部类) 静态外部类成员方法(如main方法)不能直接访问内部类,但是可以通过外部类的方法,在其中创建内部类实例对象,间接使用: 非静态内部类可以直接访问外部类的私有 ...

  2. Java学习笔记:03面向对象-接口_多态

    1.类的概念 一堆具有共同的成员变量(属性)和成员方法(功能)对象的集合 2.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...

  3. Java学习笔记 03 数组

    一.数组的创建和使用 数组的创建和使用 >>创建方法1:先声明,再用new关键字分配内存(使用new关键字分配内存,整形数组中各个元素的初始值都为0) String str[]; str= ...

  4. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  5. java学习笔记11--集合总结

    java学习笔记系列: java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Ob ...

  6. SaToken学习笔记-03

    SaToken学习笔记-03 如果排版有问题,请点击:传送门 核心思想 所谓权限验证,验证的核心就是一个账号是否拥有一个权限码 有,就让你通过.没有?那么禁止访问! 再往底了说,就是每个账号都会拥有一 ...

  7. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  8. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  9. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  10. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

随机推荐

  1. oracle表名中带@什么意思,例如:select * from dim.dim_area_no@to_dw

    转载自:https://zhidao.baidu.com/question/259154968.html @是调用数据库链接(database link)的意思. 数据库链接的作用是从a数据库到b数据 ...

  2. vim入门与快捷键使用

    1.移动 上下左右 jkhl 2.模式选择 命令模式 插入模式 字符选择模式 3.剪切复制 粘贴:p 复制 y 选择 v 进入选择模式 4. 撤销恢复 撤销 u 恢复 ctrl + r 5. 删除 d ...

  3. 北京金橙子ezcad2和lmc1控制卡二次开发的动态连接库手册

    我要吐槽一下金橙子打电话过去一问三不答.要个手册2.0的不给,只给3.0的.而且态度角度***钻,想尽一切办法让你自己用不了.我又不是要做打标卡,只是做个二次开发.有必要这样吗?反正我是不会推荐用户再 ...

  4. 8.Vuex状态管理

    一.Vuex 概述 1.1 组件之间共享数据的方式 父传子: v-bind 属性绑定 子传父: v-on 事件绑定 兄弟组件之间共享数据: EventBus $on 接收数据的那个组件 (数据接收方) ...

  5. 读取nrf52832的ADC,并且获取N个数组中的中间值

    //****读取中间值****// short GetMedianNum(short * bArray, short iFilterLen) { short i,j,bTemp;// 排序循环 for ...

  6. jxg项目Day2-git

    申请了我自己的gitee账号,建了我的仓库,在idea中点这个,然后就算漫长的自动下载的过程.. 对分支和冲突的理解:每个人都有自己的develop分支,可以commit到本地的分支,可以push到远 ...

  7. git Permission denied, please try again.

    博主在github上下载tiny face的的源代码的时候,遇到git clone命令为:git clone --recursive git@github.com:peiyunh/tiny.git 而 ...

  8. pytorch模块介绍:torch.nn

    一.简介 nn全称为neural network,意思是神经网络,是torch中构建神经网络的模块. 二.子模块介绍 2.1 nn.functional 该模块包含构建神经网络需要的函数,包括卷积层. ...

  9. day01-2-依赖管理和自动配置

    依赖管理和自动配置 1.依赖管理 1.1什么是依赖管理 spring-boot-starter-parent 中还有父项目,声明了开发中常用的依赖的版本号 并且进行自动版本仲裁,即如果程序员没有指定某 ...

  10. .Net7 CLR的调用函数和编译函数

    前言 .Net运行模型,无非就两个过程.一个是调用入口函数,另外一个就是编译入口函数.前者主调用,后者主编译. 概括 一:入口函数:RunMainInternal 所有的.Net程序,包括控制台,We ...