Java if语句的4种用法(非常详细)
程序通过流程控制语句决定运行时的走向,并完成特定的任务。在默认情况下,系统按照语句的先后顺序依次执行,这就是所谓的顺序结构。顺序结构学习起来虽然简单,但在处理复杂问题时往往捉襟见肘。为此,在计算机编程语言中又出现了分支结构、循环结构和跳转结构。
分支语句提供一种机制,使得程序可以根据表达式结果或者变量状态选择不同的执行路径。它解决了顺序结构不能判断的缺点。
Java 提供两种选择语句:if 语句和 switch 语句。它们也被称为条件语句或选择语句。本节重点讲解 if 语句的用法。
if 语句的执行流程如下图所示:

图 1 if 语句执行流程图
当 if 后面的条件表达式为 true 时,则执行紧跟其后的语句块;如果条件表达式为 false,则执行程序中 if 语句后面的其他语句。
语句块中如果只有一个语句,可以不用{}括起来,但为了增强程序的可读性最好不要省略。
【实例】通过键盘输入两个整数,输出其中较大的一个。
if-else 语句的执行流程如下图所示:

图 2 if-else 语句执行流程图
【实例】通过键盘输入一个整数,判断该整数是否大于或等于 18,如果大于或等于 18 输出“成年人”,否则输出“未成年人”。
通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件才执行另一种处理……,这些条件都不满足则执行最后一种条件”。
if else-if else 多分支语句的语法格式如下所示:
在使用 if else-if else 语句时,依次判断表达式的值,当某个分支的条件表达式的值为 true 时,则执行该分支对应的语句块,然后跳到整个 if 语句之外继续执行程序。如果所有的表达式均为 false,则执行语句块 n+1,然后继续执行后续程序,其运行流程如图 3 所示。

图 3 if else-if else 语句的执行流程
【实例】比较 num1 和 num2 的大小,使用 if else-if else 多条件的实现代码如下:
if-else 嵌套语句的语法格式如下:

图 4 if-else嵌套语句执行流程图
【实例】通过键盘输入两个整数,比较它们的大小。
分支语句提供一种机制,使得程序可以根据表达式结果或者变量状态选择不同的执行路径。它解决了顺序结构不能判断的缺点。
Java 提供两种选择语句:if 语句和 switch 语句。它们也被称为条件语句或选择语句。本节重点讲解 if 语句的用法。
Java if语句
if 语句的语法格式如下:if (条件表达式){ 语句块; }上述语法格式表达的意思是,如果 if 关键字后面的表达式成立,那么程序就执行语句块,反之则不执行语句块。
if 语句的执行流程如下图所示:

图 1 if 语句执行流程图
当 if 后面的条件表达式为 true 时,则执行紧跟其后的语句块;如果条件表达式为 false,则执行程序中 if 语句后面的其他语句。
语句块中如果只有一个语句,可以不用{}括起来,但为了增强程序的可读性最好不要省略。
【实例】通过键盘输入两个整数,输出其中较大的一个。
import java.util.Scanner; // 导入 Scanner 类 public class MaxNum { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 构造 Scanner 对象 int num1, num2, max; System.out.println("请输入两个整数:"); num1 = input.nextInt(); // 从键盘输入一个整数 num2 = input.nextInt(); max = num1; if (num2 > max) { max = num2; } System.out.println(num1 + " 和 " + num2 + " 的最大值是:" + max); } }程序执行结果如下图所示:
请输入两个整数: 5 10 5 和 10 的最大值是:10
Java if-else语句
if 语句后面可以跟 else 语句,if-else 语句的语法格式如下:if (条件表达式){ 语句块1; }else{ 语句块2; }上述语法表达的意思是,如果 if 关键字后面的表达式成立,那么程序就执行语句块 1,否则执行语句块 2。
if-else 语句的执行流程如下图所示:

图 2 if-else 语句执行流程图
【实例】通过键盘输入一个整数,判断该整数是否大于或等于 18,如果大于或等于 18 输出“成年人”,否则输出“未成年人”。
import java.util.Scanner; // 导入类 public class IfElseTest { public static void main(String[] args) { System.out.println("请输入你的年龄:"); Scanner sc = new Scanner(System.in); // 接收键盘输入的数据 int age = sc.nextInt(); // 接收键盘输入的数据 if (age >= 18) { System.out.println("成年人"); } else { System.out.println("未成年人"); } } }程序执行结果如下图所示:
请输入你的年龄: 43 成年人
Java if else-if else语句
if 语句的主要功能是给程序提供一个分支。然而,有时候程序中仅仅多一个分支是远远不够的,甚至有时候程序的分支会很复杂,这就需要使用多分支的 if else-if else 语句。通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件才执行另一种处理……,这些条件都不满足则执行最后一种条件”。
if else-if else 多分支语句的语法格式如下所示:
if(表达式1) { 语句块1; } else if(表达式2) { 语句块2; ... } else if(表达式n) { 语句块n; } else { 语句块n+1; }可以看出,else-if 结构实际上是 if-else 结构的多层嵌套。明显的特点就是在多个分支中只执行一个语句组,而其他分支都不执行,所以这种结构可以用于有多种判断结果的分支中。
在使用 if else-if else 语句时,依次判断表达式的值,当某个分支的条件表达式的值为 true 时,则执行该分支对应的语句块,然后跳到整个 if 语句之外继续执行程序。如果所有的表达式均为 false,则执行语句块 n+1,然后继续执行后续程序,其运行流程如图 3 所示。

图 3 if else-if else 语句的执行流程
【实例】比较 num1 和 num2 的大小,使用 if else-if else 多条件的实现代码如下:
public static void main(String[] args) { int num1 = 50; int num2 = 34; if (num1 == num2) { // 如果num1等于num2 System.out.println("num1等于num2"); } else if (num1 > num2) { // 如果num1大于num2 System.out.println("num1大于num2"); } else { // 否则就是小于 System.out.println("num1小于num2"); } }运行结果为:
num1 大于 num2
Java if-else嵌套语句
if-else 嵌套语句是功能强大的分支语句,可以解决几乎所有的分支问题。if-else 嵌套语句的语法格式如下:
if (条件表达式1) { if (条件表达式2) { 语句块1; } else { 语句块2; } } else { if (条件表达式3) { 语句块3; } else { 语句块4; } }其执行流程如下图所示:

图 4 if-else嵌套语句执行流程图
【实例】通过键盘输入两个整数,比较它们的大小。
import java.util.Scanner; // 导入包 public class IfElseNestTest { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入 x1:"); int x1 = sc.nextInt(); System.out.println("请输入 x2:"); int x2 = sc.nextInt(); if (x1 > x2) { System.out.println("结果是:" + "x1 > x2"); } else { if (x1 < x2) { System.out.println("结果是:" + "x1 < x2"); } else { System.out.println("结果是:" + "x1 = x2"); } } } }程序执行结果如下图所示:
请输入 x1: 5 请输入 x2: 3 结果是:x1 > x2