当前位置: 首页 > news >正文

Java流程控制03——顺序结构(本文为个人学习笔记,内容整理自哔哩哔哩UP主【遇见狂神说】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)

Java流程控制03——顺序结构

顺序结构定义:

  1. Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。

  2. 顺序结构式最简单的算法结构:

    • 由上到下,逐句执行

      在这里插入图片描述

  3. 语句与语句之间,框与框之间是按从上到下的顺序执行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构

实操:

public class 顺序结构实操{public static void main(String[] args){/*顺序结构:顾名思义代码由上到下,逐句执行如:--输入的顺序依次是:System.out.println("hello");System.out.println("word");System.out.println("!");System.out.println("hello_word!");--那么打印的顺序也一定是:helloword!hello_word!*/System.out.println("hello");System.out.println("word");System.out.println("!");System.out.println("hello_word!");}
}

在IDEA上实操及注意事项:

在这里插入图片描述

注意事项:

  1. 执行顺序是明确的,自上而下的:

    • 代码的执行顺序严格按照其在源文件中出现的物理顺序进行,从上到下,一行接着一行。

    • 且必须确保变量**先被声明和赋值然后再被使用**。逻辑上后续的步骤必须写在后面

      • /*
        正常顺序:先定义变量名和变量值在使用*/
        String name = "xiao_ming";  //先定义变量及变量值
        System.out.println("hello:"+ name);  //在使用变量:最后的打印结果为:hello_xiao_ming
        /*
        错误顺序:先使用一个未被定义的变量名再定义变量名和变量值*/
        System.out.println("hello:"+name); //使用的变量名在被定义的变量名前面
        String name = "xiao_Ming";//到这一步,程序崩溃,错误

在这里插入图片描述

在这里插入图片描述

    1. 每一步都会执行且执行一次:

      • 在顺序结构中,不存在跳过某行代码或重复执行某行代码的情况(除非遇到错误中断)

      • 与其他结构相比:

        • 选择结构(if):可能跳过某些代码块
        • 循环结构(for/whlie):会重复执行某些代码块
        • 顺序结构:每行代码都必定会执行一次
    2. 逻辑的正确性完全依赖于语句的顺序:

      • 这是顺序结构最需要警惕的地方。错误的语句顺序会导致程序逻辑错误,但程序本身可能不会报错,从而更难发现。

      • 典型例子:交换两个变量的值——意思是变量名不变,交换对应的值

        • public class 例子交换两个变量的值{public static void main(String[] args){//先定义变量名与变量值int a = 5;int b = 10;System.out.println("交换前:a = "+ a +",b = "+ b);//错误交换1:a = b; //先把b的值(10)赋给了a,现在a的值也变成了10,即a = 10b = a;//再把当前a的值(10)赋给了b,现在b的值也就变成了10,即 b = 10System.out.println("错误交换后:a = "+ a+",b = "+ b); //最后的结果a = 10,b = 10,交换失败。//先重置变量a = 5;b = 10;//错误交换2:b = a;//相反,先把a的值(5)赋给了b,现在b的值变成了5,即b = 5a = b;//再把当前b的值(5)赋给了a,现在a的值也就变成了5,即a = 5System.out.println("错误交换后:a = "+ a+",b = "+ b);//最后的结果b = 5,a = 5,交换失败。//先重置变量a = 5;b = 10;//正确交换:引入临时变量,并按正确顺序赋值int temp = a; //将a的原始值(5)备份到临时变量temp中a = b; //将b的值(10)赋给a,则现实中a的值为10b = temp;//将临时变量中备份的a的原始值(5)赋给bSystem.out.println("正确交换后:a = "+ b+",b = "+ a);//最后的结果a=10,b=5,交换成功 }
          }
        • 在这里插入图片描述

        • 里面的临时变量名temp可以更改为任意变量名

        • 它的作用只是作为一个中间人,将a的原始值保存

        • 它的生命周期再main方法内都有效,可以随时拿来用

最后总结:

顺序结构 (Sequence Structure) 核心要点

主题核心要点说明与示例
基本定义程序的基础控制流代码按照语句出现的先后顺序依次执行,不发生跳转。
执行方式自上而下执行顺序严格遵循代码的物理书写顺序,一条接一条。
执行特性无跳转、无重复每条语句都会执行且只执行一次(在没有错误的情况下)。
关键注意点变量生命周期变量必须先声明、初始化,然后再使用,否则会导致编译错误。
关键注意点逻辑依赖顺序顺序错误会导致逻辑错误(程序能运行,但结果错误)。
关键注意点状态传递后续语句的执行依赖于前面语句改变后的变量状态或创建的对象。
常见错误未定义先使用System.out.println(x); int x = 10; → 编译错误
常见错误错误交换值a = b; b = a; → 逻辑错误 (未能实现交换)
正确实践使用临时变量temp = a; a = b; b = temp; → 正确实现值交换
优点清晰直观逻辑流简单,易于理解和调试。
局限功能有限无法直接实现判断或循环,需与分支、循环结构结合使用。
最佳实践规划步骤编码前先理清逻辑步骤和数据依赖关系。
最佳实践模拟调试使用调试器或脑海模拟执行过程,验证每一步结果。

http://www.xdnf.cn/news/1388161.html

相关文章:

  • “设计深圳”亚洲权威消费科技与室内设计盛会
  • Nginx高级配置 | Nginx变量使用
  • RoadMP3告别车载音乐烦恼,一键get兼容音频
  • 20250828在荣品RD-RK3588-MID开发板的Android13系统下适配Bainianxing的GPS模块BU-16M10
  • STM32项目分享:基于单片机的自行车测速系统设计
  • C++ DDS框架学习
  • 【前端教程】用 JavaScript 实现4个常用时间与颜色交互功能
  • mysql安全运维之常见攻击类型与防御指南-从SQL注入到权限提升
  • iOS 文件管理与 uni-app 性能优化实战 多工具协作的完整指南
  • 知识卡片html5动态网页源码
  • 2025-08-28-zabbix5.0创建监控项通过脚本简单实现监控oracle11g的磁盘组和表空间的使用量
  • 【从零开始搭建你的 AI 编程助手知识库】
  • Docker的常用命令及简单使用
  • 微积分 | 积分代换
  • 探索永洪vividime的超链接功能:数据分析的桥梁
  • C# NET5.0及以上版本中如何处理MySQL大数据查询
  • 数据防泄与最小可见:ABP 统一封装行级安全(RLS)+ 列级脱敏
  • Go对接全球期货数据源指南:基于StockTV API实现多品种实时监控
  • whisper-large-v3 模型
  • Rust Tokio异步任务实战教程(高级功能)
  • 【前端教程】二维数组排序实战:按需封装才是最优解——拒绝冗余,精简代码
  • Rust语言能干什么
  • PHP的uniqid() 函数分析
  • LangChain实战(二):环境搭建与Hello World(国内开源模型版)
  • 嵌入式Linux驱动开发 - 并发控制机制
  • 【开题答辩全过程】以 基于Spring Boot的网上家庭烹饪学习系统的设计与实现为例,包含答辩的问题和答案
  • 不止 ChatGPT:多模态 AI(文本 + 图像 + 音频)正重构内容创作全流程
  • 以技术赋能强化消费者信任,助推餐饮服务质量提质增效的明厨亮灶开源了
  • [密码学实战]基于SM2实现协同签名(四十五)
  • 微算法科技(NASDAQ:MLGO)一种基于FPGA的Grover搜索优化算法技术引领量子计算