首页 > 编程笔记 > Java笔记 阅读:23

Java if语句的4种用法(非常详细)

程序通过流程控制语句决定运行时的走向,并完成特定的任务。在默认情况下,系统按照语句的先后顺序依次执行,这就是所谓的顺序结构。顺序结构学习起来虽然简单,但在处理复杂问题时往往捉襟见肘。为此,在计算机编程语言中又出现了分支结构、循环结构和跳转结构。

分支语句提供一种机制,使得程序可以根据表达式结果或者变量状态选择不同的执行路径。它解决了顺序结构不能判断的缺点。

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

相关文章