分支语句
什么是分支语句?
根据条件判断,选择执行方向
运算结果为布尔类型,执行方式不再是线性的
流程图:
开始结束
![](https://i-blog.csdnimg.cn/blog_migrate/a5f60c1e4866c65175b9715db08b61de.png)
判断
![](https://i-blog.csdnimg.cn/blog_migrate/f0307ae641fa45fba1fda3912424911f.png)
程序主体
![](https://i-blog.csdnimg.cn/blog_migrate/4e537db13e8141174e2a489b358d4632.png)
输入/输出
![](https://i-blog.csdnimg.cn/blog_migrate/1fc828d788234a7ab5c0441891e2c657.png)
子流程
![](https://i-blog.csdnimg.cn/blog_migrate/a0f4d3c9f84b929ecfa8fd832d8b7723.png)
数据来源去向相关
![](https://i-blog.csdnimg.cn/blog_migrate/3a7129cf6d728f47b1656bffc6b30e4d.png)
线
if语句
1.基本语法
![](https://i-blog.csdnimg.cn/blog_migrate/fc186ed6f1e3866104b442dfdcb4fbe8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0af4530660804c502f698e1416a80940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c45ddce850911aa71af41b422a3ced9c.png)
2.if-else选择语句
![](https://i-blog.csdnimg.cn/blog_migrate/376e41e03e382a0d8b90c23e17cd4ea6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7b1824e178ba62ca94f17d5e2a6e879d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6c24a0bab675bfddcc59b2248eba0a03.png)
3.复杂条件的判断
![](https://i-blog.csdnimg.cn/blog_migrate/0d9192fc2a23187ef609bb1f412b8d4b.png)
4.多重if选择结构
![](https://i-blog.csdnimg.cn/blog_migrate/f4c7ac8b67a9a87d4ae2301f0a4bebde.png)
![](https://i-blog.csdnimg.cn/blog_migrate/03f876f0d6b6564419e43e885ce17749.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2194fe5955c2640a8f1492b01e64791d.png)
特性
if只能在最前面,只能有1个
else只能在最后面,最多1个
else if只能在中间,可以有0-n个
多重if语句的顺序是有意义的,从上往下依次匹配。匹配上的第一个执行代码块,执行完毕,选择结束。
一般来说,将复杂的条件放前面
5.多重if嵌套
![](https://i-blog.csdnimg.cn/blog_migrate/3923c1ec82bf7789f87c9b25fcc81c4a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c2c475ab82439a621c61a1790501f24b.png)
样式一:
![](https://i-blog.csdnimg.cn/blog_migrate/2391914f9f03c2a67cf6a9b2ea033f55.png)
样式二:
![](https://i-blog.csdnimg.cn/blog_migrate/2285c63b335e4d6405eb0311719003a6.png)
注意:多重嵌套,同一个业务最多不要超过三层,否则检查业务合理性
switch语句
![](https://i-blog.csdnimg.cn/blog_migrate/1c97d36a044de97280ea562c36d5cd2e.png)
条件:不是boolean,只能是byte、short、int、char、String(jdk1.7)、枚举
![](https://i-blog.csdnimg.cn/blog_migrate/adb0b914a460606eaf0e66eb15547115.png)
常量方式:
![](https://i-blog.csdnimg.cn/blog_migrate/8d8f29b273227a10af453f7ec08f0e25.png)
枚举方式:
![](https://i-blog.csdnimg.cn/blog_migrate/10149f8e785292004005d24c6d073036.png)
注意:
switch的break,用于跳出代码执行。break不是必须的,他的作用是阻止代码穿透,使选择有了和if一样的排他性。
case后面的常量必须保持唯一性,case可以比较的必须是常量,且只能是等值判断
default的位置是任意的,但是通常我们习惯于将其放在第一位或者最后一位。如果放在最前面,需要注意是否添加break
switch和if的区别:
switch是直接定位到目标位置,只有一次匹配,if是到匹配之前,每一个if条件都要去判断
只能是等值的常量进行比较,而if可以支持任意形式的复杂条件
作用域:块级作用域
里面的可以访问外面
外面的不能访问里面
平级间互不影响
一个变量的生命周期在一个代码块结束后回收
补充知识点
常量:关键字final
一个不会变化的量,只能被赋值一次
命名必须全部大写,单词之间用下划线
![](https://i-blog.csdnimg.cn/blog_migrate/5256b7a3a83996d7815a38c54b4af609.png)
枚举:一个由开发者自行创建的类型,其拥有固定的值。
命名格式和类名一致,关键字叫enum
![](https://i-blog.csdnimg.cn/blog_migrate/533dd88149ab5815883b19871d80364c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fb7e24a430c6870a2c521039385bb347.png)
断点跟踪和代码调试(Eclipse篇)
帮助程序员追踪查看,程序的执行情况,方法的调用情况,以及变量的变化情况
![](https://i-blog.csdnimg.cn/blog_migrate/57de229602f2458ac1516cacda3747d5.png)
我们可以添加若干个断点
![](https://i-blog.csdnimg.cn/blog_migrate/ccfd050356bf89705c0244b736a5f362.png)
以debug形式进行代码运行,如果没有断点,和run as没有任何区别
![](https://i-blog.csdnimg.cn/blog_migrate/2f626896032a76aa537dd52d0146fc31.png)
![](https://i-blog.csdnimg.cn/blog_migrate/aefb4d8379495e7bafc5ddfe02105a88.png)
查看变量:
![](https://i-blog.csdnimg.cn/blog_migrate/cc5c8e69ab844aa1a905ecf9a87095a5.png)
断点管理:
![](https://i-blog.csdnimg.cn/blog_migrate/150a13c8a77223e08e222fea33ebce94.png)
查看方法栈:
![](https://i-blog.csdnimg.cn/blog_migrate/5b9633c5f9e0ea05e8fdd1a2a2f017ac.png)
查看运行时表达式结果:
![](https://i-blog.csdnimg.cn/blog_migrate/18bcf3ff92e5f8682f6d49dcd3a8ebbe.png)
几个快捷键:
F5:跟着方法调用关系进行追踪
F6:往下执行一行
F8:结束本轮断点追踪,跳到下一个断点所在位置