判断语句的三种格式
if (boolean) {
}
if (boolean) {
} else {
}
if (boolean) {
} else if (boolean) {
} else {
}
说明:
if-else 是非此即彼的关系,如果进入了 if 分支就一定不会进入 else 分支,如果没有进入 if 分支就一定会进入 else 分支。
if-else if-else 只能执行一个分支,如果进入一个分支,后面的分支连被被判断的机会都没有。比如下面的例子中如果输入的 score 是 90. 输出的结果是 “及格” 而不是预想的 “优秀”。所以在使用的时候应该特别注意。
使用 if-else 语句时,有一条基本规则,总是优先把包含范围小的条件放在前面进行判断。
if (score >= 60) {
System.out.println("及格");
} else if (score >= 70) {
System.out.println("一般");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 90) {
System.out.println("优秀");
} else {
System.out.println();
}
另外,if-else if-else 中的 else 在语法上是可以省略的。但是在实际的生产环境中不建议做这样的省略,即使 else 分支没有实质性的操作,也不要省略。
选择语句的格式
switch(表达式) {
case 值1:
// 语句
break;
case 值2:
// 语句
break;
case 值3:
// 语句
break;
default:
}
表达式仅支持 int|String|enum 类型,由于 byte|short|char 和 int 可以实现转换,所以也可以被支持。(swicth 对 String 的支持从 JDK1.7 开始,在之前的版本中开发时不能通过编译)
尽管语法上可以通过,但是实际开发中强制书写default. default 的位置并不影响它的作用,但是习惯上放在最后,用来概括所有没有被 case 列举的值。
case 的值不允许有重复。建议每一个 case 分支都书写 break, 如果有逻辑需要省略 break,一定要使用注释说明原因。(具体要求详见《阿里巴巴Java开发手册》)