1. 流程控制
1.1 概述
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
1.2 顺序结构
2. 判断语句
2.1 判断语句1--if
if语句第一种格式: if
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
2.2 判断语句2--if...else
if语句第二种格式: if...else
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
2.3 判断语句3--if..else if...else
if语句第三种格式: if...else if ...else
执行流程
首先判断关系表达式 1 看其结果是 true 还是 false
如果是 true 就执行语句体 1
如果是 true 就执行语句体 2
如果是 false 就继续判断关系表达式 … 看其结果是 true 还是 false
…
如果没有任何关系表达式为 true ,就执行语句体 n+1 。
2.4 语句练习
指定考试成绩,判断学生等级
90-100 优秀
80-89 好
70-79 良
60-69 及格
60 以下 不及格
2.5 if语句和三元运算符的互换
在某些简单的应用中,if语句是可以和三元运算符互换使用的。
3. 选择语句
3.1 选择语句--switch
switch语句格式:
执行流程
首先计算出表达式的值
其次,和 case 依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到 break 就会结束。
最后,如果所有的 case 都和表达式的值不匹配,就会执行 default 语句体部分,然后程序结束掉。
switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。
3.2 case的穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
上述程序中,执行 case5 后,由于没有 break 语句,程序会一直向后走,不会在判断 case ,也不会理会 break ,直接运行完整体 switch 。
由于 case 存在穿透性,因此初学者在编写 switch 语句时,必须要写上 break 。