![零基础Java学习笔记](https://wfqqreader-1252317822.image.myqcloud.com/cover/177/36710177/b_36710177.jpg)
3.2 if 语句
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_41.jpg?sign=1738888530-laEzdGnBlUSZr5GZXUBh7RcQgSU4v40w-0-dd3f39891fca73ae07e3b6315b18a377)
if 语句也称条件语句,是对语句中不同条件的值进行判断,从而根据不同的条件执行不同操作的语句。
条件语句可分为以下3 种形式:
(1)简单的if 条件语句。
(2)if…else 条件语句。
(3)if…else if 多分支条件语句。
3.2.1 简单的if 条件语句
简单的if 条件语句是对某种条件进行相应的处理。通常表现为 “如果满足某种条件,则进行某种处理”。它的一般形式为:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_42.jpg?sign=1738888530-j5oGvTe3uEt8TX0eIv1czmtRSNNIVyYY-0-312e64789038cbac67adbaa3529af315)
●表达式:必要参数。其值可以由多个表达式组成,但其最后的结果一定是boolean 型,也就是说,其结果只能是true 或false。
●语句序列:可选参数。一条或多条语句,当表达式的值为true 时执行这些语句。当该语句序列被省略时,可以保留大括号,也可以去掉大括号,然后在if 条件语句的末尾添加分号 “;”。如果该语句序列只有一条语句,则大括号可以省略不写,但为了增强程序的可读性,最好不省略。
例如:如果今天下雨,则我们就不出去玩。
条件语句为:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_43.jpg?sign=1738888530-evZQboI45LS0e37KfXjlJ5r9zIBe3GIt-0-97654d9d02a78a84b9f9b0f99e52c6a0)
下面的代码都是正确的:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_44.jpg?sign=1738888530-UPVykWOQcn22L10DhHqvOWALZpKSxRo3-0-be10a4d3ebdb0032381984fc608a3cb9)
简单的if 条件语句执行流程如图3.9 所示。
【例3.3】 使用简单的if 条件语句获取两个数的最小值,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_45.jpg?sign=1738888530-GBPstOXzTEQfohtooExutRTAtBXjQED0-0-fcfd37aafb105f7182999d02a6232bb8)
程序运行结果如图3.10 所示。
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_46.jpg?sign=1738888530-DKzgEMLTeNgp0wgiDeKXhKXzPQxaaFJG-0-6b07148f50f9fe413f012b5e9cbbceb7)
图3.9 简单的if 条件语句执行流程
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_47.jpg?sign=1738888530-UbvoM5LTOpeXOgVOfz8xRRe4LSqojW1y-0-4c3159fcd69917c526222b8eeadf6a41)
图3.10 简单的if 条件语句获取最小值的结果
3.2.2 if…else 条件语句
if…else 条件语句是条件语句的一种最通用的形式。else 是可选的,通常表现为 “如果满足某种条件,则进行某种处理,否则进行另一种处理”。它的一般形式为:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_48.jpg?sign=1738888530-Wt6JwRz2rqEHZhZEf5hYDPUHvRG8IbZt-0-c8139bda88e899a4b23cf1c58f6d2379)
●表达式:必要参数。其值可以由多个表达式组成,但其最后的结果一定是boolean 型,也就是说,其结果只能是true 或false。
●语句序列1:可选参数。一条或多条语句,当表达式的值为true 时执行这些语句。
●语句序列2:可选参数。一条或多条语句,当表达式的值为false 时执行这些语句。
例如:如果指定年为闰年,则二月份为29 天,否则二月份为28 天。
条件语句为:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_49.jpg?sign=1738888530-I9lcZy4jslYkMSNg3v8MfmRwWhvlMj62-0-83a50ee6fabaf588cc621711b6e6771e)
if…else 条件语句执行流程如图3.11 所示。
【例3.4】 使用if…else 条件语句判断69 与29 的大小,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_50.jpg?sign=1738888530-dtIcaR4ySQ6Jo1etkoIPCudciZPKgaqp-0-680fc02e26fc9ad75016077191f1021c)
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_51.jpg?sign=1738888530-fDqWDQdGyIwq8FRfmwLLPwyKvS0jC32H-0-32791211dceecd1e49cabdbd990129ee)
程序运行结果如图3.12 所示。
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_52.jpg?sign=1738888530-b0dHmOGB3WLdLcZtjBW9rXa9o5ceXQlr-0-17c9c0507815520910eb84b6a1e39a32)
图3.11 if…else 条件语句执行流程
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_53.jpg?sign=1738888530-1JwXSByJFTF739K2rZfARhmczgwPfHp9-0-794e3a55aec8580fab3620d4f6d9af81)
图3.12 if…else 条件语句判断大小的结果
3.2.3 if…else if 多分支语句
if…else if 多分支语句用于对某一事件的多种情况进行处理。通常表现为 “如果满足某种条件,则进行某种处理;如果满足另一种条件,则进行另一种处理;如果所有条件都不满足,则进行其他处理”。它的一般形式为:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_54.jpg?sign=1738888530-GscXPttctWUl1wu9FtU0OHDnbTBT4JwS-0-a400fde987805721f4293377f5bc0c9c)
●表达式1 和表达式2:必要参数。其值可以由多个表达式组成,但其最后的结果一定是boolean 型,也就是说,其结果只能是true 或false。
●语句序列1:可选参数。一条或多条语句,当表达式1 的值为true 时执行这些语句。
●语句序列2:可选参数。一条或多条语句,当表达式1 的值为false,表达式2 的值为true 时执行这些语句。
●语句序列n:可选参数。一条或多条语句,当表达式1 的值为false,表达式2 的值也为false 时执行这些语句。
例如:如果今天是星期一,则上数学课;如果今天是星期二,则上语文课;否则上自习。
条件语句为:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_55.jpg?sign=1738888530-FYqMpXTpBsZDafFnGxVCxaWNdWeWbsi5-0-cb535b185c5fbd596583adc7a1fcd4ad)
if…else if 多分支语句执行流程如图3.13 所示。
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_56.jpg?sign=1738888530-I2TtGhnRc48e8rS24mBvMEnwyuhMoy6g-0-6623063921016290a1a83dc442afcc89)
图3.13 if…else if 多分支语句执行流程
3.2.4 if 语句的嵌套
if 语句的嵌套就是在if 语句中又包含一个或多个if 语句。这样的语句一般都用于比较复杂的分支语句中,它的一般形式为:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_57.jpg?sign=1738888530-efPWR1elRVRNBO5Onwcg4UPwgr67g0rC-0-dc3358ac8ecc1b6ae9b29432f1175ec5)
●表达式1、表达式2 和表达式3:必要参数。其值可以由多个表达式组成,但其最后的结果一定是boolean 型,也就是说,其结果只能是true 或false。
●语句序列1:可选参数。一条或多条语句,当表达式1 和表达式2 的值都为true 时执行这些语句。
●语句序列2:可选参数。一条或多条语句,当表达式1 值为true,表达式2 的值为false 时执行这些语句。
●语句序列3:可选参数。一条或多条语句,当表达式1 的值为false,表达式3 的值为true 时执行这些语句。
●语句序列4:可选参数。一条或多条语句,当表达式1 的值为false,表达式3 的值也为false 时执行这些语句。
【例3.5】 使用if…else 嵌套实现:判断英语打78 分处在什么阶段。条件为:成绩大于或等于90 分为优,成绩在75(含)~90 分为良,成绩在60(含)~75 分为及格,成绩小于60 分为不及格,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_58.jpg?sign=1738888530-nDmMAauOu8vHzASmgigng2KKR3DLcrzl-0-718fcd7ae8e8c5006a02a3936887f98f)
程序运行结果如图3.14 所示。
在嵌套的语句中最好不要省略大括号,以免造成视觉的错误与程序的混乱。
例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_59.jpg?sign=1738888530-WASei7c1LbFBa6oZnvmYbVqfcR54zEaP-0-d24fd15b6f91f34178741ed4c5921ed7)
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_60.jpg?sign=1738888530-jUcUCN9BQf7PeELWPlLC1IgQxkrXzLJ9-0-24da2425051cfe865c72b6d1a3dcd957)
图3.14 成绩判断结果
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_61.jpg?sign=1738888530-cni3XXQgD7SPRDmcYNVtr3OZ5JSh1yct-0-05e343cf1e779a7174c7071e4f385f48)
这样即使result 等于0,也会输出no,因此很难判断else 与哪个if 配对。为了避免发生这种情况,最好添加大括号为代码划分界限,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_62.jpg?sign=1738888530-qHQO8GIP9zUZ8qtBwxuA5kyw7xATDyfa-0-319341510b9a7dea12405a252f1e0b00)