Java流程控制03——顺序结构(本文为个人学习笔记,内容整理自哔哩哔哩UP主【遇见狂神说】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
Java流程控制03——顺序结构
顺序结构定义:
-
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
-
顺序结构式最简单的算法结构:
-
由上到下,逐句执行
-
-
语句与语句之间,框与框之间是按从上到下的顺序执行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构
实操:
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上实操及注意事项:
注意事项:
-
执行顺序是明确的,自上而下的:
-
代码的执行顺序严格按照其在源文件中出现的物理顺序进行,从上到下,一行接着一行。
-
且必须确保变量**先被声明和赋值,然后再被使用**。逻辑上后续的步骤必须写在后面
-
/* 正常顺序:先定义变量名和变量值在使用*/ String name = "xiao_ming"; //先定义变量及变量值 System.out.println("hello:"+ name); //在使用变量:最后的打印结果为:hello_xiao_ming /* 错误顺序:先使用一个未被定义的变量名再定义变量名和变量值*/ System.out.println("hello:"+name); //使用的变量名在被定义的变量名前面 String name = "xiao_Ming";//到这一步,程序崩溃,错误
-
-
-
-
每一步都会执行且执行一次:
-
在顺序结构中,不存在跳过某行代码或重复执行某行代码的情况(除非遇到错误中断)
-
与其他结构相比:
- 选择结构(if):可能跳过某些代码块
- 循环结构(for/whlie):会重复执行某些代码块
- 顺序结构:每行代码都必定会执行一次
-
-
逻辑的正确性完全依赖于语句的顺序:
-
这是顺序结构最需要警惕的地方。错误的语句顺序会导致程序逻辑错误,但程序本身可能不会报错,从而更难发现。
-
典型例子:交换两个变量的值——意思是变量名不变,交换对应的值
-
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; → 正确实现值交换 |
优点 | 清晰直观 | 逻辑流简单,易于理解和调试。 |
局限 | 功能有限 | 无法直接实现判断或循环,需与分支、循环结构结合使用。 |
最佳实践 | 规划步骤 | 编码前先理清逻辑步骤和数据依赖关系。 |
最佳实践 | 模拟调试 | 使用调试器或脑海模拟执行过程,验证每一步结果。 |