if-then
语句
if-then
语句是所有控制流语句中最基本的。它告诉您的程序仅在特定测试的结果为true
时,才执行代码的特定部分。例如,仅当自行车已经在运动中时,Bicycle
类才允许制动器降低自行车的速度。applyBrakes
方法的一种可能的实现方式如下:
void applyBrakes() {
// the "if" clause: bicycle must be moving
if (isMoving){
// the "then" clause: decrease current speed
currentSpeed--;
}
}
如果该测试的评估结果为false
(表示自行车没有运动),则控制跳至if-then
语句的末尾。
另外,如果“then”子句仅包含一个语句,则左花括号和右花括号是可选的:
void applyBrakes() {
// same as above, but without braces
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!");
}
}
下面的程序 IfElseDemo
根据测试分数的值来分配等级:A表示90%或更高的分数,B表示80%或更高的分数,依此类推。
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);
}
}
该程序的输出为:
Grade = C
您可能已经注意到,testscore
复合语句中的的值可以满足多个表达式:76 >= 70
和76 >= 60
。但是,一旦满足条件,便会执行适当的语句(grade = 'C';)
,并且不会评估其余条件。