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

来源:稀土掘金

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

目录
相关文章
|
3天前
|
Java
IDEA云行项目提示Error: java: OutOfMemoryError
IDEA云行项目提示Error: java: OutOfMemoryError
|
3天前
|
Java 微服务
IDEA报错There is insufficient memory for the Java Runtime Environment to continue.
IDEA报错There is insufficient memory for the Java Runtime Environment to continue.
|
4天前
|
存储 Java 程序员
JAVA基本语法
JAVA基本语法
12 1
|
4天前
|
算法 Java 大数据
Java从入门到精通学习报告
Java从入门到精通学习报告
11 1
|
4天前
|
消息中间件 监控 安全
【JAVAEE学习】探究Java中多线程的使用和重点及考点
【JAVAEE学习】探究Java中多线程的使用和重点及考点
|
5天前
|
Java
解决IDEA打开java项目出现橙色j无法运行
解决IDEA打开java项目出现橙色j无法运行
9 0
|
5天前
|
Java
【专栏】如何在 Java 8 中使用 Streams?结合多种案例剖析学习!
【4月更文挑战第28天】Java 8 的 Streams 提供了一种处理数据集合的新方式,增强了代码的可读性和可维护性。本文介绍了 Streams 的基本概念,如从数据源创建 Stream,以及中间和终端操作。通过过滤、映射、归并、排序、分组等案例,展示了 Streams 的使用,包括并行 Streams 提高效率。学习 Streams 可以提升代码质量和效率,文章鼓励读者在实际开发中探索更多 Streams 功能。
|
5天前
|
存储 监控 Java
Java 零基础入门学习(小白也能看懂!)四
Java 零基础入门学习(小白也能看懂!)四
|
5天前
|
存储 安全 Java
Java 零基础入门学习(小白也能看懂!)三
Java 零基础入门学习(小白也能看懂!)三
|
5天前
|
存储 机器学习/深度学习 Java
Java 零基础入门学习(小白也能看懂!)二
Java 零基础入门学习(小白也能看懂!)二