杰瑞科技汇

Java中if与if else如何正确选择使用?

核心概念

if 语句允许你的程序根据一个条件的真假来决定是否执行某段代码,这个条件通常是一个布尔表达式,其结果只能是 truefalse

Java中if与if else如何正确选择使用?-图1
(图片来源网络,侵删)

if 语句

if 语句是最简单的形式,如果条件为 true,则执行 if 代码块中的语句;如果条件为 false,则直接跳过 if 代码块,继续执行后面的代码。

语法结构

if (条件表达式) {
    // 如果条件表达式为 true,则执行这里的代码块
    // 代码块可以包含一条或多条语句
}

示例

public class IfExample {
    public static void main(String[] args) {
        int age = 20;
        // 检查年龄是否大于等于18
        if (age >= 18) {
            System.out.println("你已经成年了。");
        }
        System.out.println("程序继续执行...");
    }
}

输出结果:

你已经成年了。
程序继续执行...

分析: 因为 age 的值是 20age >= 18 这个条件为 trueif 代码块内的 System.out.println(...) 被执行了。


if-else 语句

if-else 语句在 if 的基础上增加了一个 else 分支,当 if 的条件为 false 时,程序会执行 else 代码块中的语句,这提供了“二选一”的逻辑。

Java中if与if else如何正确选择使用?-图2
(图片来源网络,侵删)

语法结构

if (条件表达式) {
    // 如果条件表达式为 true,则执行这里的代码块
} else {
    // 如果条件表达式为 false,则执行这里的代码块
}

示例

public class IfElseExample {
    public static void main(String[] args) {
        int score = 55;
        // 检查分数是否及格
        if (score >= 60) {
            System.out.println("恭喜,你及格了!");
        } else {
            System.out.println("很遗憾,你没有及格。");
        }
        System.out.println("程序结束。");
    }
}

输出结果:

很遗憾,你没有及格。
程序结束。

分析: 因为 score 的值是 55score >= 60 这个条件为 false,所以程序跳过了 if 代码块,转而执行 else 代码块中的语句。


if-else if-else 语句

当需要处理多个条件,并且这些条件是互斥(即只有一个条件会为 true)的时候,可以使用 if-else if-else 结构,程序会从上到下依次检查每个 ifelse if 的条件,一旦找到第一个为 true 的条件,就执行其对应的代码块,然后跳过整个 if-else if-else 结构的剩余部分。

语法结构

if (条件1) {
    // 如果条件1为 true,则执行这里的代码块
} else if (条件2) {
    // 如果条件1为 false,且条件2为 true,则执行这里的代码块
} else if (条件3) {
    // 如果条件1和条件2都为 false,且条件3为 true,则执行这里的代码块
} else {
    // 如果以上所有条件都为 false,则执行这里的代码块
}

示例

public class IfElseIfElseExample {
    public static void main(String[] args) {
        int score = 85;
        if (score >= 90) {
            System.out.println("成绩等级:A");
        } else if (score >= 80) {
            System.out.println("成绩等级:B");
        } else if (score >= 60) {
            System.out.println("成绩等级:C");
        } else {
            System.out.println("成绩等级:D");
        }
    }
}

输出结果:

Java中if与if else如何正确选择使用?-图3
(图片来源网络,侵删)
成绩等级:B

分析:

  1. 程序首先检查 score >= 9085 >= 90false,所以跳过。
  2. 接着检查 else if (score >= 80)85 >= 80true,所以执行这个代码块,打印 "成绩等级:B"。
  3. 一旦代码块被执行,整个 if-else if-else 结构就结束了,后面的 else if (score >= 60)else 都不会再被检查。

if 语句的嵌套

你可以在一个 if 语句的代码块内部再放置另一个 if 语句,这被称为嵌套,这用于处理更复杂的逻辑判断。

示例

public class NestedIfExample {
    public static void main(String[] args) {
        int age = 25;
        boolean isStudent = true;
        // 外层 if 检查年龄
        if (age >= 18) {
            System.out.println("你已经成年了。");
            // 内层 if 检查是否是学生
            if (isStudent) {
                System.out.println("并且你是一名学生,可以享受学生优惠。");
            } else {
                System.out.println("但你不是一名学生。");
            }
        } else {
            System.out.println("你还未成年。");
        }
    }
}

输出结果:

你已经成年了。
并且你是一名学生,可以享受学生优惠。

最佳实践和注意事项

  1. 使用大括号 即使 ifelse 代码块只有一条语句,也强烈建议使用大括号 ,这可以避免因后续添加代码而导致的逻辑错误,并且让代码更清晰、更易读。

    不推荐 (容易出错):

    if (age > 18)
        System.out.println("成年了");
        System.out.println("可以投票"); // 这行代码实际上不在 if 语句内

    推荐 (清晰安全):

    if (age > 18) {
        System.out.println("成年了");
        System.out.println("可以投票");
    }
  2. 布尔表达式 if 后面的括号里必须是布尔表达式,直接在括号里放一个布尔变量是正确的,但放一个整数或其他类型会导致编译错误。

    boolean isReady = true;
    if (isReady) { // 正确
        // ...
    }
    int status = 1;
    // if (status) { // 错误!不兼容的类型: int 无法转换为 boolean
    //     ...
    // }
  3. elseif 的配对 else 总是和它最近的、尚未配对的 if 语句配对,在嵌套结构中要特别注意。

    int x = 10;
    int y = 20;
    if (x == 10)
        if (y == 20)
            System.out.println("x is 10 and y is 20");
        else // 这个 else 属于哪个 if?是内层的 if (y == 20)
            System.out.println("x is 10 but y is not 20");

    如果想让 else 属于外层的 if,必须使用大括号来明确作用域:

    if (x == 10) {
        if (y == 20) {
            System.out.println("x is 10 and y is 20");
        }
    } else { // else 明确属于外层的 if (x == 10)
        System.out.println("x is not 10");
    }
结构 描述 示例
if 当条件为 true 时执行代码。 if (age > 18) { ... }
if-else truefalse 两种情况中选择一个执行。 if (score >= 60) { ... } else { ... }
if-else if-else 从多个互斥条件中选择第一个为 true 的执行。 if (grade == 'A') { ... } else if (grade == 'B') { ... } else { ... }
嵌套 if if 语句内部再使用 if 语句,处理复杂逻辑。 if (age > 18) { if (isStudent) { ... } }

掌握 if 语句是编程的基础,它能让你写出能够根据不同情况做出不同反应的智能程序。

分享:
扫描分享到社交APP
上一篇
下一篇