分支(选择)结构
Java中提供了两种常见的分支控制结构:if语句和switch语句 。其中if语句使用布尔表达式或者布尔值作为分支条件来进行分支控制;而switch则用户对多个值进行匹配,从而实现分支控制 。
if语句
if语句使用布尔表达式或者布尔值作为分支条件来进行分支控制 。if语句有如下三种形式:
if(logic expression) { statement...}复制代码if (logic expression) { statement...} else { statement...}复制代码if (logic expression) { statement...} else if(logic expression) { statement...} ...复制代码使用if语句的时候需要注意下面几点:
- 当if和else后面之后一条语句的时候可以省略{},但是通常最好不要省略{}
- 对于if语句,还有一个很容易出现的逻辑错误 。看如下的程序:
- 表面上看来,上面的程序没有任何问题,但是age=45程序的运行结果却是“青年人”,这显然是有问题的!
- **对于任何if else语句,表面上看起来else后没有任何条件,或者esle if后面只有一个条件——但是这只是表面现象,因为else的含义是"否则"——else本身就是一个条件!else的隐含条件是对前面的条件取反 。**因此,上面的代码可以修改为:
- 上面的程序运行之后就能得到正确的结果,其实上面的程序就等同于下面的这段代码:
- 也就是说上面的判断逻辑转为如下三种情况:
- age大于60岁,判断为“老年人”
- age大于40岁,并且age小于等于60岁,判断为“中年人”
- age大于20岁,并且age小于等于40岁,判断为“青年人” 。
- 上面的逻辑才是实际希望的判断逻辑 。因此,使用if...else语句进行流程控制的时候,一定不要忽略了else所带的隐含条件 。
- 如果每次都去计算if条件和else条件的交集也是一件麻烦的事情,为了避免出现上述的错误,
推荐阅读
- 对Java中HashCode方法的深入思考
- 关于并发框架 Java原生线程池原理及Guava与之的补充
- java数据结构及算法总结
- Linux中的xargs命令
- Java中的HashCode方法与内存泄漏问题,你了解过吗?
- java程序运行原理解析
- Java程序计数器刨根问底,大部分程序员都收藏起来了
- Java如何利用Socket请求Http接口?
- python中的列表与元组
- 粽子配茶中的学问
