这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
if-then和if-then-else语句
if-then语句
if-then语句是控制流中最基本的语句。它将告诉程序只有特定的测试结果为true时才执行部分代码块。比如,只有在自行车处于运动状态时,才能使用刹车使自行车减速。applyBrakes 方法的一个可能实现如下:
void applyBrakes(){
// if语句,只有当自行车在运动
if(isMoving){
// then语句,自行车减速
currentSpeed--;
}
}
如果测试结果为false,那么控制流将会跳到if-then语句的结尾。
此外,只要then语句中只有一条语句,花括号是可选的。
void applyBrakes(){
// 与上例相同,但没有花括号
if(isMoving)
currentSpeed--;
}
决定什么时候省略花括号看个人喜好。省略它们会让代码更脆弱。如果稍后在“then”子句中添加第二个语句,那么常见的错误就是忘记添加需要的花括号。由于编译器无法捕获该类错误,你可能得到错误的结果。
if-then-else语句
if-then-else语句在当if子句的结果为false时提供了第二条执行路径。你可以在applyBrakes 方法中使用if-then-else语句,当自行车处于非运动状态时做出一些动作。在本例中,该动作可以是打印一些错误提示信息表示该自行车处于停止状态。
void applyBrakes(){
if(isMoving){
currentSpeed--;
}else{
System.err.println("The bicycle has already stopped!");
}
}
下面的示例,根据分数打等级,90分以上的打A,80分以上的打B,以此类推。
class IfElseDemo{
public static void main(String[] args){
int testScore = 76;
char grade;
if(testScore >= 90){
grade = 'A';
}else if(testScore >= 80){
grade = 'B';
}else if(testScore >= 70){
grade = 'C';
}else if(testScore >= 60){
grade = 'D';
}else{
grade = 'F';
}
System.out.println("Grade = " + grade);
}
}
程序输出为:
C
你可能已经注意到了testScore在这个符合语句中会满足多个条件 76>=70 和 76>=60。但是,只要一个条件满足了,合适的子句(grade = ‘C’)将会执行,其余的子句将会忽略。