2.4.1、if-then和if-then-else语句

这篇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’)将会执行,其余的子句将会忽略。

你可能感兴趣的:(JDK1.8官方文档翻译)