Java学习之路001——基础语法以及IDEA的基本使用(下)

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

七、流程控制语句


7.1 概述

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


7.2 流程控制语句分类

  • 顺序结构
  • 选择结构
  • 循环结构


7.2.1 顺序结构概述

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

7.2.1.1 顺序结构图


7.2.2 选择结构

  • 也被称为分支结构。
  • 选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
  • Java语言提供了两种选择结构语句if语句switch语句

7.2.2.1 if语句

if语句有三种格式
if语句 第一种格式:

if(关系表达式) {

语句体;

}

  • 执行流程
  • 首先判断关系表达式看其结果是true还是false
  • 如果是true就执行语句体
  • 如果是false就不执行语句体

网络异常,图片无法展示
|

if语句 第二种格式

if(关系表达式) {

语句体1;

}else {

语句体2;

}

  • 执行流程
  • 首先判断关系表达式看其结果是true还是false
  • 如果是true就执行语句体1
  • 如果是false就执行语句体2
  • 我们前面讲解过三元运算符,它根据比较判断后,给出的也是两个结果,所以,这种情况和if语句的第二种格式很相似,他们在某些情况下应该是可以相互转换的。
  • if语句第二种格式和三元运算符
  • 三元运算符的操作都可以使用if语句改进,反之不成立
  • 什么时候不成立呢?
  • 当if语句控制的语句体是一条输出语句的时候,就不成立。因为三元运算符是一个运算符,必须要求有一个结果返回。而输出语句却不能作为一个返回结果。
if语句 第三种格式

if(关系表达式1) {

语句体1;

}else  if (关系表达式2) {

语句体2;

}    

else {

语句体n+1;

}

  • 执行流程
  • 首先判断关系表达式1看其结果是true还是false
  • 如果是true就执行语句体1
  • 如果是false就继续判断关系表达式2看其结果是true还是false
  • 如果是true就执行语句体2
  • 如果是false就继续判断关系表达式…看其结果是true还是false…
  • 如果没有任何关系表达式为true,就执行语句体n+1。

网络异常,图片无法展示
|

7.2.2.2 switch语句

JDK8及以前写法

switch(表达式) {

     case 值1:

语句体1;

break;

 case 值2:

语句体2;

break;

   …  

default:

语句体n+1;

break;  

}

JDK14以及以上的写法
不带返回值

switch(表达式) {

  case 值1,值2,值3 -> 语句体1;

  case 值4,值5,值6 -> 语句体2;

   case 值7 -> 语句体3;

}

通过yield返回一个新值

String result = switch(表达式) {

  case 值1,值2,值3 -> 语句体1; yield 返回值1;

  case 值4,值5,值6 -> 语句体2; yield 返回值2;  

  case 值7 -> 语句体3; yield 返回值3;

}

7.3 循环结构

7.3.1 概述

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

7.3.2 循环语句的组成

  • 初始化语句:一条或者多条语句,用这些语句完成一些初始化操作。
  • 判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体。
  • 循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
  • 控制条件语句:这个部分在一次循环体结束后,在下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

7.3.3 for循环语句格式

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

  • 执行流程
  • A:执行初始化语句
  • B:执行判断条件语句,看其结果是true还是false如果是false,循环结束。如果是true,继续执行。
  • C:执行循环体语句
  • D:执行控制条件语句
  • E:回到B继续

7.3.4 循环流程图

网络异常,图片无法展示
|

7.4 while循环

  • 基本格式

while(判断条件语句) {

     循环体语句;

}

  • 扩展格式

初始化语句;

while(判断条件语句) {

    循环体语句;  

    控制条件语句;

}

7.4.1 while循环流程

网络异常,图片无法展示
|

7.4.2 do...while循环

  • 基本格式

do {      

循环体语句;

}while(判断条件语句);

  • 扩展格式

初始化语句;

do {      

循环体语句;      

控制条件语句;

} while(判断条件语句);

7.4.2.1 do...while循环流程图

网络异常,图片无法展示
|

7.5 跳转控制语句

前面我们已经说过了,Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。

  • break 中断
  • continue 继续
  • return 返回

7.5.1 跳转控制语句(break)

7.5.1.1 break的使用场景

  • 在选择结构switch语句中
  • 在循环语句中

离开使用场景的存在是没有意义的

7.5.1.2 break的作用

  • 跳出单层循环
  • 跳出多层循环
  • 带标签的跳出
  • 格式:标签名: 循环语句
  • 标签名要符合Java的命名规则

7.5.2 跳转控制语句(continue)

7.5.2.1 continue的使用场景

  • 在循环语句中
  • 离开使用场景的存在是没有意义的

7.5.2.2 continue的作用

  • 单层循环对比break,然后总结两个的区别
  • break 退出当前循环
  • continue 退出本次循环

7.5.3 跳转控制语句(return)

return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。这个在方法的使用那里会有详细的讲解。

八、核心语法全局图

网络异常,图片无法展示
|


作者:Wesky2023

链接:https://juejin.cn/post/7200982129474682917

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
9天前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
36 5
|
9天前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
55 1
|
10天前
|
Java 程序员
Java基础学习day08
本节讲解Java中的代码块(静态与实例)及其作用,深入介绍内部类(成员、静态、局部及匿名)的定义与使用,并引入函数式编程思想,重点阐述Lambda表达式及其在简化匿名内部类中的应用。
91 5
|
7天前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
55 1
|
10天前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
110 3
|
10天前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
36 1
|
10天前
|
设计模式 存储 Java
Java基础学习day07
本节讲解Java中的final关键字、单例设计模式、枚举类、抽象类与接口。涵盖常量定义、单例写法(饿汉式/懒汉式)、枚举特点及应用场景,以及抽象类与接口的使用与区别,助力掌握核心面向对象编程思想。
69 1
|
15天前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
47 2
|
15天前
|
安全 Java 编译器
Java基础学习day06
本节学习Java继承与多态核心概念:继承通过extends实现,子类可复用父类非私有成员,支持单继承与多层继承,遵循就近原则并可用super调用父类成员;方法重写需满足权限与返回值约束,常用于重写toString等。多态基于继承,实现父类引用指向子类对象,提升扩展性但无法直接访问子类独有方法,可通过instanceof安全类型转换。
80 2
|
16天前
|
存储 Java
Java基础学习day05
本节介绍Java面向对象编程基础,涵盖类与对象的概念、构造器、this关键字、封装、Javabean及static修饰符的使用。重点讲解如何通过类设计对象、实现数据封装与方法暴露,并理解静态成员的特点与应用场景。
53 2