1、switch语句陷阱
switch语句是Java提供的一种重要的分支语句,它用于判断某个表达式的值,根据不同的值执行不同的分支语句。
1.1、default分支
default分支的潜在条件时,表达式的值与前面分支的值都不相等。正常情况下,只有当switch语句的前面分支没有获得执行时,default分支才会获得执行机会。
1.2、break重要性
在case分支后的每个代码块后都有一条break;语句,用于终止当前分支的执行体。Java一旦找到匹配的case分支,程序就开始执行此分支块,不再判断与后面case、default标签的条件是否匹配,除非遇到break;才会结束该执行体。
1.3、Java 7 中增强的switch
Java 7 之前switch语句的表达式只支持byte、short、int、char、enum。从Java 7 开始表达式可以支持String类型,但不能是long、float、double类型。
程序在其他地方使用enum值时,通常应该使用枚举类名作为限定,如Season.Fall;但在case分支中访问枚举值时不能使用枚举类名作为限定,如case Fall。
2、标签引起的陷阱
Java语句的标签可以与循环中的break、continue结合使用,让break直接终止标签所标识的循环,让continue语句忽略标签所标识的循环的剩下语句。
3、if语句的陷阱
if…else语句基本原则:总是优先把包含范围小的条件放在前面处理。
4、for循环的陷阱
for循环的初始化条件可以同时定义多个变量,但由于它只能接受一条语句,因此这两个变量的数据类型应该相同。
中间的逻辑表达式只能返回boolean值。
虽然迭代部分可以包含多条语句,但多条语句不能用分号作为分隔符,只能用逗号作为分隔符。
5、foreach循环的循环计数器
for (type variableName : array | collection) {
// variableName自动迭代访问每个元素
}