Java if else语句详解(附带实例)
Java 中的条件语句可以根据不同的条件执行不同的语句。条件语句包括 if 条件语句与 switch 多分支语句,本节将向读者讲解 if 条件语句的用法。
Java 提供的 if 条件语句,可分为简单的 if 条件语句、if else语句和 if else if 多分支语句。
if 条件语句的语法如下:
如果语句序列中只有一条语句,则可以采用以下写法:
条件语句后的语句序列被省略时:可以保留外面的大括号;也可以省略大括号,然后在末尾添加“;”。如下所示的两种情况都是正确的:

图 1 if条件语句的执行过程
【实例】判断手机号码是否存在。
创建 TakePhone 类,模拟拨打电话场景,如果电话号码不是 84972266,则提示拨打的号码不存在。
if else 语句的语法如下:
if else 语句的执行过程如下图所示。

图 2 if else语句的执行过程
同简单的 if 条件语句一样,如果 if else 语句的语句序列中只有一条语句(不包括注释),则可以省略该语句序列外面的“{ }”。有时为了编程的需要,else 或 if 后面的“{ }”中可以没有语句。
【实例】使用 if else 语句校验密码。
在项目中创建 Login 类,在主方法中定义变量,并通过使用 if else 语句判断变量的值,以决定输出结果。
if else if 多分支语句的语法如下:
if else if 多分支语句的执行过程如下图所示。

图 3 if else if多分支语句的执行过程
【实例】使用 if else if 语句实现饭店座位的分配。
创建 Restaurant 类,声明整型变量 count 表示用餐人数,根据人数安排客人到 4 人桌、8 人桌或包厢用餐。
比如,在 if 语句中嵌套 if else 语句,语法格式如下:
例如:使用嵌套的判断语句,判断控制台输入的年份是否是闰年;能被 4 整除且不能被 100 整除的年份,或者能被 400 整除的年份。代码如下:
Java 提供的 if 条件语句,可分为简单的 if 条件语句、if else语句和 if else if 多分支语句。
Java if条件语句
if 条件语句是用于告诉程序在某种条件成立的情况下执行某一段语句,而在另一种条件成立的情况下执行另一段的语句。if 条件语句的语法如下:
if(布尔表达式){ 语句序列 }
- 布尔表达式:必要参数,表示最后返回的结果必须是一个布尔值。它可以是一个单纯的布尔变量或常量,也可以是使用关系或布尔运算符的表达式。
- 语句序列:可选参数。它可以是一条或多条语句,当表达式的值为 true 时执行这些语句。若语句序列中仅有一条语句,则可以省略条件语句中的“{ }”。
如果语句序列中只有一条语句,则可以采用以下写法:
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 }
- 条件表达式 1~条件表达式 n:必要参数。可以由多个表达式组成,但最后返回的结果一定要为 boolean 类型。
- 语句序列:可以是一条或多条语句。当条件表达式 1 的值为 true 时,执行语句序列 1;当条件表达式 2 的值为 true 时,执行语句序列 2,以此类推。如果所有的条件表达式都为 false,则执行语句序列 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