Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java if...else语句

在本教程中,您将在示例的帮助下了解Java中的控制流语句,使用Java的if和if ... else语句。

在计算机编程中,通常希望根据指定的条件是true 或 false(仅在运行时才知道)执行代码的特定部分。在这种情况下,将使用控制流语句。

Java if(if-then)语句

在Java中,if-then语句的语法为:

if (expression) {
    // 语句
}

这是一个布尔表达式(expression)。布尔表达式返回 true 或 false。

  • 如果将表达式计算为true,则将if执行(大括号内的语句)主体内部的语句

  • 如果表达式的计算结果为false,则if主体内的语句将被跳过

if语句如何工作?

if语句如何在Java中工作?
Java if语句的工作

示例1:Java if语句

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

        int number = 10;

        //检查数字是否大于0
        if (number > 0) {
            System.out.println("这个数字是正数。");
        }
        System.out.println("该语句始终被执行。");
    }
}

输出

这个数字是正数。
该语句始终被执行。

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

由于number大于0。因此,测试表达式的计算结果为true。同时,将执行if内的代码。

现在,将的值更改number为负整数。假设为 -5。

int number = -5;

如果我们使用的新值运行上述程序number,则将仅输出为:

该语句始终被执行。

在此,number的值小于0。因此,测试表达式 number > 0,的计算结果为 false。因此,if内的语句不会被执行。

要了解有关测试表达式的更多信息,请访问Java 关系运算符  和Java 逻辑运算符

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

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

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

if-then-else语句的语法为:

if (expression) {
   // 代码
}
else {
  // 其他代码
}

在这里,如果测试表达式为true,我们的程序将执行一个任务(if块内的任务),如果测试表达式为false,则另一项任务(else代码块内的任务)。

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

if ... else语句在Java中如何工作?
Java if-else语句的工作

示例2:Java if else语句

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

        //检查数字是否大于0
        if (number > 0) {
            System.out.println("该数字为正。");
        }
        else {
            System.out.println("该数字不是正数。");
        }
 
        System.out.println("This statement is always executed.");
    }
}

输出

该数字为正。
该语句始终被执行。

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

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

现在,将的值更改number为负整数。比方说 -5。

int number = -5;

如果我们使用的新值运行程序number,则输出为:

该数字不是正数。
该语句始终被执行。

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

Java if..else..if语句

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

if (expression1) {
   // 代码
}
else if(expression2) {
   // 代码
}
else if (expression3) {
   // 代码
}
.
.
else {
   // 代码
}

在这里,if语句从上到下执行。一旦测试表达式为true,就执行该if语句主体内的代码。然后,程序的控制跳到if-else-if阶梯语句外面。

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

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

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

        int number = 0;

        //检查数字是否大于0 
        if (number > 0) {
            System.out.println("这个数字是正数。");
        }

        //检查数字是否小于0
        else if (number < 0) {
            System.out.println("该数字为负数。");
        }
        else {
            System.out.println("数字是0。");
        } 
    }
}

输出

数字是0。

在上面的示例中,我们正在检查变量number是正数,负数还是零。在这里,我们有两个测试表达式:

  • number > 0 - 检查 number大于0

  • number < 0 - 检查 number小于0

在这里,number的值是0。因此,两个测试表达式的计算结果均为false。因此,执行了else主体内部的语句。

Java 嵌套 if..else语句

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

这是一个查找3个数字中,最大的一个数字的程序:

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

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

        //声明双精度类型变量
        Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largestNumber;

        //检查n1是否大于或等于n2
        if (n1 >= n2) {

            //if ... else语句在if块内
            // 检查n1是否大于或等于n3
            if (n1 >= n3) {
                largestNumber = n1;
            }

            else {
                largestNumber = n3;
            }
        } else {

            //else块中的if...else语句
            //检查n2是否大于或等于n3
            if (n2 >= n3) {
                largestNumber = n2;
            }  else {
                largestNumber = n3;
            }
        }

        System.out.println("最大的数字是 " + largestNumber);
    }
}

输出

最大的数字是 4.5

注意:在上面的程序中,我们自己分配了变量的值,以简化演示过程。但是,在实际应用中,这些值可能来自用户输入数据,日志文件,表单提交等。

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