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

Java if else语句详解(附带实例)

Java 中的条件语句可以根据不同的条件执行不同的语句。条件语句包括 if 条件语句与 switch 多分支语句,本节将向读者讲解 if 条件语句的用法。

Java 提供的 if 条件语句,可分为简单的 if 条件语句、if else语句和 if else if 多分支语句。

Java if条件语句

if 条件语句是用于告诉程序在某种条件成立的情况下执行某一段语句,而在另一种条件成立的情况下执行另一段的语句。

if 条件语句的语法如下:
if(布尔表达式){
   语句序列
}

如果语句序列中只有一条语句,则可以采用以下写法:
int a = 100;
if(a==100)
    System.out.print("a的值是100");
虽然 if 条件语句中的语句序列只有一条语句时,省略“{ }”并无语法错误,但为了增强程序的可读性,最好不要省略。

条件语句后的语句序列被省略时:可以保留外面的大括号;也可以省略大括号,然后在末尾添加“;”。如下所示的两种情况都是正确的:
boolean b = false;
if(b);

boolean b = false;
if(b){ }
if 条件语句的执行过程如下图所示:

图 1 if条件语句的执行过程

【实例】判断手机号码是否存在。
创建 TakePhone 类,模拟拨打电话场景,如果电话号码不是 84972266,则提示拨打的号码不存在。
public class TakePhone {
    public static void main(String[] args) {
        int phoneNumber = 123456789; // 创建变量,保存电话号码
        if (phoneNumber != 84972266) { // 如果此电话号码不是 84972266
            System.out.println("对不起,您拨打的号码不存在!"); // 提示号码不存在
        }
    }
}
运行结果如下:

对不起,您拨打的号码不存在!

Java if else语句

if else 语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。这通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。

if else 语句的语法如下:
if(布尔表达式){
   语句序列1
}else{
   语句序列2
}
if 后面“( )”内的表达式的值必须是 boolean 型的。如果表达式的值为 true,则执行紧跟 if 语句的语句序列 1;如果表达式的值为 false,则执行 else 后面的语句序列 2。

if else 语句的执行过程如下图所示。


图 2 if else语句的执行过程

同简单的 if 条件语句一样,如果 if else 语句的语句序列中只有一条语句(不包括注释),则可以省略该语句序列外面的“{ }”。有时为了编程的需要,else 或 if 后面的“{ }”中可以没有语句。

【实例】使用 if else 语句校验密码。
在项目中创建 Login 类,在主方法中定义变量,并通过使用 if else 语句判断变量的值,以决定输出结果。
public class Login {
    public static void main(String[] args) {
        int password = 987654321; // 密码值
        if (123456789 == password) { // 如果密码是123456789
            System.out.println("密码正确,欢迎登录"); // 提示密码正确
        } else {
            System.out.println("密码错误,拒绝登录"); // 否则提示密码错误
        }
    }
}
运行结果如下:

密码错误,拒绝登录

Java if else if多分支语句

if else if 多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理;否则,如果满足另一种条件,则执行另一种处理”。

if else if 多分支语句的语法如下:
if(布尔表达式1){
   语句序列1
}else if(条件表达式2){
   语句序列2
}
...
else if(条件表达式n){
   语句序列n
}else{
   语句序列n+1
}

if else if 多分支语句的执行过程如下图所示。


图 3 if else if多分支语句的执行过程

【实例】使用 if else if 语句实现饭店座位的分配。
创建 Restaurant 类,声明整型变量 count 表示用餐人数,根据人数安排客人到 4 人桌、8 人桌或包厢用餐。
public class Restaurant {
    public static void main(String args[]) {
        System.out.println("欢迎光临,请问有多少人用餐?");
        int count = 9; // 用餐人数
        System.out.println("回答:" + count + "人"); // 输出回答
        if (count <= 4) {
            System.out.println("客人请到大厅 4 人桌用餐"); // 如果人数少于或等于 4 人
        } else if (count > 4 && count <= 8) {
            System.out.println("客人请到大厅 8 人桌用餐"); // 如果人数为 4~8 人
        } else if (count > 8 && count <= 16) {
            System.out.println("客人请到楼上包厢用餐"); // 如果人数为 8~16 人
        } else {
            System.out.println("抱歉,我们店暂时没有这么大的包厢!"); // 当以上条件都不成立时,执行该语句块
        }
    }
}
运行结果如下:

欢迎光临,请问有多少人用餐?
回答:9人
客人请到楼上包厢用餐

Java if语句的嵌套

if、if else 和 if else if 语句都可以嵌套判断语句。

比如,在 if 语句中嵌套 if else 语句,语法格式如下:
if(表达式 1){
   if(表达式2){
      语句1
   }else{
      语句2
   }
}
在 if else 语句中嵌套 if else 语句,形式如下:
if(表达式 1){
   if(表达式2){
      语句1
   }else{
      语句2
   }
}else{
   if(表达式3){
      语句1
   }else{
      语句2
   }
}
判断语句可以有多种嵌套方式,可以根据具体需要进行设计,但一定要注意逻辑关系的正确处理。

例如:使用嵌套的判断语句,判断控制台输入的年份是否是闰年;能被 4 整除且不能被 100 整除的年份,或者能被 400 整除的年份。代码如下:
import java.util.Scanner;
public class JudgeLeapYear {
    public static void main(String[] args) {
        int iYear; // 创建整形变量,保存输入的年份
        Scanner sc = new Scanner(System.in); // 创建扫描器
        System.out.println("please input number"); // 在控制台上输入一个数字
        iYear = sc.nextInt(); // 输入年份
        if (iYear % 4 == 0) { // 如果能被 4 整除
            if (iYear % 100 == 0) { // 如果能被 100 整除
                if (iYear % 400 == 0) // 如果能被 400 整除
                    System.out.println("It is a leap year"); // 是闰年
                else
                    System.out.println("It is not a leap year"); // 不是闰年
            } else
                System.out.println("It is a leap year"); // 是闰年
        } else
            System.out.println("It is not a leap year"); // 不是闰年
    }
}
当在控制台上输入 2024 时,运行结果为:

please input number
2024
It is a leap year

相关文章