原文: https://www.programiz.com/java-programming/if-else-statement

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

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


Java if语句

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

  1. if (expression) {
  2. // statements
  3. }

此处expression是布尔表达式。 布尔表达式返回truefalse

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

if语句如何工作?

Java `if`,`if...else`语句 - 图1

Java if语句的原理


示例 1:Java if语句

  1. class IfStatement {
  2. public static void main(String[] args) {
  3. int number = 10;
  4. // checks if number is greater than 0
  5. if (number > 0) {
  6. System.out.println("The number is positive.");
  7. }
  8. System.out.println("This statement is always executed.");
  9. }
  10. }

输出

  1. The number is positive.
  2. This statement is always executed.

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

由于number大于0。 因此,测试表达式的求值结果为true。 因此,将执行if主体内部的代码。

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

  1. int number = -5;

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

  1. This statement is always executed.

在此,number的值小于0。 因此,测试表达式number > 0求值为false。 因此,执行if的主体。

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


Java if...else语句

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

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

if-else语句的语法为:

  1. if (expression) {
  2. // codes
  3. }
  4. else {
  5. // some other code
  6. }

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


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

Java `if`,`if...else`语句 - 图2

Java if-else语句的原理


示例 2:Java if else语句

  1. class IfElse {
  2. public static void main(String[] args) {
  3. int number = 10;
  4. // checks if number is greater than 0
  5. if (number > 0) {
  6. System.out.println("The number is positive.");
  7. }
  8. else {
  9. System.out.println("The number is not positive.");
  10. }
  11. System.out.println("This statement is always executed.");
  12. }
  13. }

输出

  1. The number is positive.
  2. This statement is always executed.

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

由于number的值为10,因此测试表达式的值为true。 因此,将执行if主体内部的代码。

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

  1. int number = -5;

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

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

在此,number的值为-5。 因此,测试表达式的求值结果为false。 因此,将执行else主体内部的代码。


Java if..else..if语句

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

  1. if (expression1) {
  2. // codes
  3. }
  4. else if(expression2) {
  5. // codes
  6. }
  7. else if (expression3) {
  8. // codes
  9. }
  10. .
  11. .
  12. else {
  13. // codes
  14. }

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

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


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

  1. class Ladder {
  2. public static void main(String[] args) {
  3. int number = 0;
  4. // checks if number is greater than 0
  5. if (number > 0) {
  6. System.out.println("The number is positive.");
  7. }
  8. // checks if number is less than 0
  9. else if (number < 0) {
  10. System.out.println("The number is negative.");
  11. }
  12. else {
  13. System.out.println("The number is 0.");
  14. }
  15. }
  16. }

输出

  1. The number is 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语句

  1. class Number {
  2. public static void main(String[] args) {
  3. // declaring double type variables
  4. Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largestNumber;
  5. // checks if n1 is greater than or equal to n2
  6. if (n1 >= n2) {
  7. // if...else statement inside the if block
  8. // checks if n1 is greater than or equal to n3
  9. if (n1 >= n3) {
  10. largestNumber = n1;
  11. }
  12. else {
  13. largestNumber = n3;
  14. }
  15. }
  16. else {
  17. // if..else statement inside else block
  18. // checks if n2 is greater than or equal to n3
  19. if (n2 >= n3) {
  20. largestNumber = n2;
  21. }
  22. else {
  23. largestNumber = n3;
  24. }
  25. }
  26. System.out.println("The largest number is " + largestNumber);
  27. }
  28. }

输出

  1. The largest number is 4.5

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

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