📜  Java if,if … else语句

📅  最后修改于: 2020-09-26 14:45:20             🧑  作者: Mango

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

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


Java if(if-then)语句

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

if (expression) {
    // statements
}

这里的表达式是一个布尔表达式。布尔表达式返回true或false。

  • 如果表达式的计算结果为true ,则执行if (括号内的语句)体内的语句
  • 如果表达式的计算结果为falseif从执行中跳过if体内的语句

如果语句如何工作?

How if statement works in Java?

Java if语句的工作


示例1:Java if语句

class IfStatement {
    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.");
        }
        System.out.println("This statement is always executed.");
    }
}

输出

The number is positive.
This statement is always executed.

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

由于该数字大于0 。因此,测试表达式的评估结果为true 。因此, if体内的代码将被执行。

现在,这个数字的值更改为一个负整数。假设-5。

int number = -5;

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

This statement is always executed.

在这里, number的值小于0 。因此,测试表达式编号> 0的计算结果为false 。因此,执行if的正文。

要了解有关测试表达式的更多信息,请访问Java Relational Operators和Java Logical Operators。

注意 :我们也可以使用字符串作为布尔表达式。

示例2:Java if … else和String

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

    // if statement
    if(language == "Java") {
      System.out.println("This is best programming language.");
    }
  }
}

输出

This is best programming language.

在这里,我们正在比较if块中的两个字符串 。


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

if测试表达式的值为trueif语句将执行代码的特定部分。但是,如果测试表达式的计算结果为false ,则它什么也不做。

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

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

if (expression) {
   // codes
}
else {
  // some other code
}

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


如果… else语句如何工作?

How if...else statement works in Java?

Java if-else语句的工作


示例2:Java if else语句

class IfElse {
    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.");
        }
        else {
            System.out.println("The number is not positive.");
        }
 
        System.out.println("This statement is always executed.");
    }
}

输出

The number is positive.
This statement is always executed.

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

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

现在,这个数字的值更改为一个负整数。假设-5

int number = -5;

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

The number is not positive.
This statement is always executed.

在这里, 数字的值是-5。因此,测试表达式的计算结果为false 。因此,执行else主体内部的代码。


Java if..else..if语句

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

if (expression1) {
   // codes
}
else if(expression2) {
   // codes
}
else if (expression3) {
   // codes
}
.
.
else {
   // codes
}

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

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


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

class Ladder {
    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.");
        }
        else {
            System.out.println("The number is 0.");
        } 
    }
}

输出

The number is 0.

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

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

在这里, 数字的值为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) {

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

        // 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) {
                largestNumber = n1;
            }

            else {
                largestNumber = n3;
            }
        }
        else {

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

            else {
                largestNumber = n3;
            }
        }

        System.out.println("The largest number is " + largestNumber);
    }
}

输出

The largest number is 4.5

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

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