Java if...else 语句

在编程中,我们使用 if..else 语句在多个备选项中运行一个代码块。

例如,根据学生获得的百分比分配成绩(A、B、C)。

  • 如果百分比高于 90,则分配成绩 A
  • 如果百分比高于 75,则分配成绩 B
  • 如果百分比高于 65,则分配成绩 C

1. Java if (if-then) 语句

if-then 语句的语法是

if (condition) {
  // statements
}

在此,condition 是一个布尔表达式,例如 age >= 18

  • 如果 condition 的计算结果为 true,则执行 if 语句内的代码行
  • 如果 condition 的计算结果为 false,则跳过 if 语句内的代码行

if 语句的工作原理

if the number is greater than 0, code inside if block is executed, otherwise code inside if block is skipped
Java if 语句的工作原理

示例 1:Java if 语句

class IfStatement {
  public static void main(String[] args) {

    int number = 10;

    // checks if number is less than 0
    if (number < 0) {
      System.out.println("The number is negative.");
    }

    System.out.println("Statement outside if block");
  }
}

输出

Statement outside if block

在此程序中,number < 0 的结果为 false。因此,if 语句体内的代码被跳过

注意:如果您想了解更多关于测试条件的信息,请访问 Java 关系运算符Java 逻辑运算符


我们也可以使用 Java 字符串 作为测试条件。

示例 2:Java if 语句与 String

class Main {
  public static void main(String[] args) {
    // create a string variable
    String language = "Java";

    // if statement
    if (language == "Java") {
      System.out.println("Best Programming Language");
    }
  }
}

输出

Best Programming Language

在上面的示例中,我们在 if 块中比较了两个字符串。


2. Java if...else (if-then-else) 语句

如果测试表达式的计算结果为 trueif 语句将执行特定部分的代码。但是,如果测试表达式的计算结果为 false,则不执行任何操作。

在这种情况下,我们可以使用可选的 else 块。如果测试表达式的计算结果为 false,则执行 else 块内的语句。这被称为 Java 中的if-...else 语句。

if...else 语句的语法是

if (condition) {
  // codes in if block
}
else {
  // codes in else block
}

在这里,如果条件为 true,程序将执行一项任务(if 块内的代码);如果条件为 false,则执行另一项任务(else 块内的代码)。


if...else 语句如何工作?

If the condition is true, the code inside the if block is executed, otherwise, code inside the else block is executed
Java if-else 语句的工作原理

示例 3:Java if...else 语句

class Main {
  public static void main(String[] args) {
    int number = 10;

    // checks if number is greater than 0
    if (number > 0) {
      System.out.println("The number is positive.");
    }
    
    // execute this block
    // if number is not greater than 0
    else {
      System.out.println("The number is not positive.");
    }

    System.out.println("Statement outside if...else block");
  }
}

输出

The number is positive.
Statement outside if...else block

在上面的示例中,我们有一个名为 number 的变量。这里,测试表达式 number > 0 检查 number 是否大于 0。

由于 number 的值为 10,测试表达式的计算结果为 true。因此,执行了 if 体内的代码。

现在,将 number 的值更改为一个负整数。比如 -5

int number = -5;

如果我们使用新的 number 值运行程序,输出将是

The number is not positive.
Statement outside if...else block

这里,number 的值为 -5。因此,测试表达式的计算结果为 false。因此,执行了 else 体内的代码。


3. Java if...else...if 语句

在 Java 中,我们有一个 if...else...if 阶梯,可用于在多个代码块中执行一个代码块。

if (condition1) {
  // codes
}
else if(condition2) {
  // codes
}
else if (condition3) {
  // codes
}
.
.
else {
  // codes
}

在这里,if 语句从上到下执行。当测试条件为 true 时,将执行该 if 块体内的代码。并且,程序控制会跳出 if...else...if 阶梯。

如果所有测试表达式都为 false,则执行 else 体内的代码。


if...else...if 阶梯如何工作?

If the first test condition if true, code inside first if block is executed, if the second condition is true, block inside second if is executed, and if all conditions are false, the else block is executed
if...else...if 阶梯的工作原理

示例 4:Java if...else...if 语句

class Main {
  public static void main(String[] args) {

    int number = 0;

    // checks if number is greater than 0
    if (number > 0) {
      System.out.println("The number is positive.");
    }

    // checks if number is less than 0
    else if (number < 0) {
      System.out.println("The number is negative.");
    }
    
    // if both condition is false
    else {
      System.out.println("The number is 0.");
    }
  }
}

输出

The number is 0.

在上面的示例中,我们正在检查 number正数、负数还是零。这里,我们有两个条件表达式

  • number > 0 - 检查 number 是否大于 0
  • number < 0 - 检查 number 是否小于 0

这里,number 的值为 0。因此,两个条件都计算为 false。因此,执行了 else 体内的语句。

注意:Java 提供了一个称为三元运算符的特殊运算符,它是一种 if...else...if 语句的简写形式。要了解三元运算符,请访问 Java 三元运算符


4. Java 嵌套 if..else 语句

在 Java 中,也可以在 if...else 语句中使用 if..else 语句。这被称为嵌套 if...else 语句。

这是一个使用嵌套 if...else 语句查找 3 个数字中最大值的程序。

示例 5:嵌套 if...else 语句

class Main {
  public static void main(String[] args) {

    // declaring double type variables
    Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largest;

    // checks if n1 is greater than or equal to n2
    if (n1 >= n2) {

      // if...else statement inside the if block
      // checks if n1 is greater than or equal to n3
      if (n1 >= n3) {
        largest = n1;
      }

      else {
        largest = n3;
      }
    } else {

      // if..else statement inside else block
      // checks if n2 is greater than or equal to n3
      if (n2 >= n3) {
        largest = n2;
      }

      else {
        largest = n3;
      }
    }

    System.out.println("Largest Number: " + largest);
  }
}

输出:

Largest Number: 4.5

在上面的程序中,我们自己为 变量 赋值,以便更容易理解。

但是,在实际应用中,这些值可能来自用户输入数据、日志文件、表单提交等。

在结束之前,让我们来测试一下您对 Java if...else(附带示例)的掌握程度!您能解决以下挑战吗?

挑战

编写一个函数,根据分数检查学生是及格还是不及格。

  • 如果分数大于或等于 50,则返回 "Pass"。否则,返回 "Fail"
  • 例如,如果 score = 55,则预期输出是 "Pass"
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战