java从入门到起飞(三)——三大结构(顺序结构、分支结构、循环结构)

简介: java从入门到起飞(三)——三大结构(顺序结构、分支结构、循环结构)

前提


    三大结构也成为流程控制语句,分为三大类,分别问顺序结构、分支结构和循环结构。接下来就让我们来详细看看这三大结构特点吧。


顺序结构


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

    顺序结构执行流程图:


 顺序结构执行NS图

    顺序结构执行代码:

public static void main(String[] args){
  int a = 10;
  a = a + 6;
  System.out.println("a的值为"+a);
}


分支结构


    分支结构又称为选择结构,可分为if选择语句和Switch语句。

if选择语句


if语句的格式1:


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

执行流程:

  1. 首先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体
  3. 如果关系表达式的值为false就不执行语句体
  4. 继续执行后面的语句内容
        if语句的格式1执行流程图:


if语句的格式2:


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


执行流程:

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

    if语句的格式2执行流程图:


switch语句

switch语句的格式:


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

格式说明:


表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。

case:后面跟的是要和表达式进行比较的值。

break:表示中断,结束的意思,用来结束switch语句。

default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

执行流程:

首先计算表达式的值。

依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束掉。

   switch语句执行流程图:


循环结构


    特征:重复做某件事情,具有明确的开始和停止标志。

循环结构的组成:

初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样

条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去

循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情

条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去

循环结构对应的语法:

初始化语句:这里可以是一条或者多条语句,这些语句可以完成一些初始化操作

条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。例如:a<3

循环体语句:这里可以是任意语句,这些语句将反复执行

条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。常见i++,i–这样的操作


for循环语句格式


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


执行流程:

① 执行初始化语句

② 执行条件判断语句,看其结果是true还是false

如果是false,循环结束

如果是true,继续执行

③ 执行循环体语句

④ 执行条件控制语句

⑤ 回到②继续


while循环语句格式


基本格式:
while (条件判断语句) {
    循环体语句;
}
完整格式:
初始化语句;
while (条件判断语句) {
    循环体语句;
    条件控制语句;
}


执行流程:

① 执行初始化语句

② 执行条件判断语句,看其结果是true还是false

如果是false,循环结束

如果是true,继续执行

③ 执行循环体语句

④ 执行条件控制语句

⑤ 回到②继续

在这里插入图片描述

do…while循环语句


基本格式:
do {
    循环体语句;
}while(条件判断语句);
完整格式:
初始化语句;
do {
    循环体语句;
    条件控制语句;
}while(条件判断语句);

执行流程:

① 执行初始化语句

② 执行循环体语句

③ 执行条件控制语句

④ 执行条件判断语句,看其结果是true还是false

 如果是false,循环结束

 如果是true,继续执行

⑤ 回到②继续


三种循环的区别

三种循环的区别:

  • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
  • do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

for和while的区别:

  • 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
  • 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用

死循环格式:

for(;😉 { }

while(true) { }

do{ }while(true);

目录
打赏
0
0
0
0
0
分享
相关文章
|
1月前
|
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
166 60
【Java并发】【线程池】带你从0-1入门线程池
|
16天前
|
【Java并发】【synchronized】适合初学者体质入门的synchronized
欢迎来到我的Java线程同步入门指南!我不是外包员工,梦想是写高端CRUD。2025年我正在沉淀中,博客更新速度加快,欢迎点赞、收藏、关注。 本文介绍Java中的`synchronized`关键字,适合初学者。`synchronized`用于确保多个线程访问共享资源时不会发生冲突,避免竞态条件、保证内存可见性、防止原子性破坏及协调多线程有序访问。
50 8
【Java并发】【synchronized】适合初学者体质入门的synchronized
|
16天前
|
《从头开始学java,一天一个知识点》之:数组入门:一维数组的定义与遍历
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问&quot;`a==b`和`equals()`的区别&quot;,大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 这个系列就是为你打造的Java「速效救心丸」!我们承诺:每天1分钟,地铁通勤、午休间隙即可完成学习;直击痛点,只讲高频考点和实际开发中的「坑位」;拒绝臃肿,没有冗长概念堆砌,每篇都有可运行的代码标本。明日预告:《多维数组与常见操作》。 通过实例讲解数组的核心认知、趣味场景应用、企业级开发规范及优化技巧,帮助你快速掌握Java数组的精髓。
57 23
|
16天前
|
《从头开始学java,一天一个知识点》之:循环结构:for与while循环的使用场景
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问&quot;`a==b`和`equals()`的区别&quot;,大脑突然空白
64 22
【Java并发】【AQS】适合初学者体质的AQS入门
AQS这是灰常重要的哈,很多JUC下的框架的核心,那都是我们的AQS,所以这里,我们直接开始先研究AQS。 那说到研究AQS,那我们应该,使用开始说起🤓 入门 什么是AQS? AQS(Abst
29 8
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
121 60
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
68 23
|
25天前
|
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码
当我们创建一个`ThreadPoolExecutor`的时候,你是否会好奇🤔,它到底发生了什么?比如:我传的拒绝策略、线程工厂是啥时候被使用的? 核心线程数是个啥?最大线程数和它又有什么关系?线程池,它是怎么调度,我们传入的线程?...不要着急,小手手点上关注、点赞、收藏。主播马上从源码的角度带你们探索神秘线程池的世界...
94 0
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
139 14