文档

Java™教程
隐藏目录
if-then和if-then-else语句
路径:学习Java语言
课程:语言基础
章节:控制流程语句

if-then和if-then-else语句

if-then语句

if-then语句是所有控制流语句中最基本的语句。它告诉你的程序仅当特定的测试评估为true时才执行某个代码段。例如,Bicycle类可以只有在自行车已经在运动中时才允许刹车减少自行车的速度。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("自行车已经停止!");
    } 
}

下面的程序IfElseDemo根据测试分数的值分配等级: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);
    }
}

程序的输出是:

    等级 = C

你可能已经注意到,testscore的值可以满足复合语句中的多个表达式:76 >= 70和76 >= 60。然而,一旦条件满足,相应的语句会执行(grade = 'C';),剩下的条件就不会被评估。


上一页: 控制流语句
下一页: switch 语句