![零基础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=1739275941-A1XQUtgMw8qhDg0dGGrpB9Lli5DaJUjR-0-c57da6405a7491127983b6466b6a8bad)
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=1739275941-5YilYWtCebOLXi2Sc3IbjnbmSoqcXlo1-0-792fef4f846ae54bab816451abf39dfe)
●表达式:必要参数。其值可以由多个表达式组成,但其最后的结果一定是boolean 型,也就是说,其结果只能是true 或false。
●语句序列:可选参数。一条或多条语句,当表达式的值为true 时执行这些语句。当该语句序列被省略时,可以保留大括号,也可以去掉大括号,然后在if 条件语句的末尾添加分号 “;”。如果该语句序列只有一条语句,则大括号可以省略不写,但为了增强程序的可读性,最好不省略。
例如:如果今天下雨,则我们就不出去玩。
条件语句为:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_43.jpg?sign=1739275941-xUAC3ENedhMqi1q1pBq4PhggUtrL0oJu-0-bb37ac5acee84c416fac09823ce6d271)
下面的代码都是正确的:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_44.jpg?sign=1739275941-kxzh79OyxfeYegeT0mI2BgFhHnDLVf2o-0-d54981b15af01a57bc4ac354f1fc275c)
简单的if 条件语句执行流程如图3.9 所示。
【例3.3】 使用简单的if 条件语句获取两个数的最小值,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_45.jpg?sign=1739275941-kbyjoXfNAbF5zKGrfz3jVB00KydWntJb-0-47c073f75e04c8b2733ba727e9729ca8)
程序运行结果如图3.10 所示。
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_46.jpg?sign=1739275941-wefqtjUExEvurF0jYxugIiQbLT6rYQdu-0-d0ddae35cc50754852c5ebfe7ef397ce)
图3.9 简单的if 条件语句执行流程
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_47.jpg?sign=1739275941-lfNBmDKSQJm6DTKrcUse4v42rUVbpHRM-0-ebf432664dbefb5311ac845313a8514f)
图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=1739275941-EEDK0YrsI2G8jEPXRxXGTQ6kJu1yt7YG-0-08442f12fc9bcd2463ad63902f5d895d)
●表达式:必要参数。其值可以由多个表达式组成,但其最后的结果一定是boolean 型,也就是说,其结果只能是true 或false。
●语句序列1:可选参数。一条或多条语句,当表达式的值为true 时执行这些语句。
●语句序列2:可选参数。一条或多条语句,当表达式的值为false 时执行这些语句。
例如:如果指定年为闰年,则二月份为29 天,否则二月份为28 天。
条件语句为:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_49.jpg?sign=1739275941-Na4d8VvIXWSGpHT2ojBf06Jk59CwTo8u-0-2b03ef681fc5d6998b48377cc5165e1f)
if…else 条件语句执行流程如图3.11 所示。
【例3.4】 使用if…else 条件语句判断69 与29 的大小,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_50.jpg?sign=1739275941-Q6AeRh6toBXX7AUqCuHoMW7gyqQIEYpw-0-a43fb0154ae7948df67988dbd6c79e34)
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_51.jpg?sign=1739275941-fr1TKWldXVIHFxFLvbcYZ26hVVKlghly-0-60469fd009f53f946f9e061dd986a6b2)
程序运行结果如图3.12 所示。
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_52.jpg?sign=1739275941-uBGvW0ylMGozfY4OZ3QSHt8441JG0gcJ-0-b3fea0571f4ee73616cfc67336600a07)
图3.11 if…else 条件语句执行流程
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_53.jpg?sign=1739275941-WJoHz5fec4rJiDUoRFtWj8oAGc2bvdTx-0-072679dd6f53ea28931b08446032f0dc)
图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=1739275941-QFbr1SrNbrUMCG43S1DKo5wuoTEIr9RS-0-db0f9e4dd686abc4d109d5cd5ae6eaa6)
●表达式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=1739275941-d0rsI0TUTkcAqGRD4WY8VV311twzkKOG-0-a6258e32e6ec18ed92be0ab5fea0e25c)
if…else if 多分支语句执行流程如图3.13 所示。
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_56.jpg?sign=1739275941-7SUqc0dhnLs0I19xoAkPUsIilUvuqQwV-0-7e1e7ed8d0c035448966b683d9c38bbf)
图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=1739275941-ZMvqb6SzWIpoqS3CY0HDCu9bhlxC5Gq3-0-bd52a2f36a664a188df0eee80dd4eb70)
●表达式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=1739275941-JUKQtynK03ZNZ1ATBB0F3AwZ4WGnKVXL-0-610329de9630e981f94840c38198e66c)
程序运行结果如图3.14 所示。
在嵌套的语句中最好不要省略大括号,以免造成视觉的错误与程序的混乱。
例如:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_59.jpg?sign=1739275941-2CO3TeMMc9VGOrLXotp1uzQt5Ez0dUGF-0-2863207cbda419997426a9db12f0b184)
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_60.jpg?sign=1739275941-GpJvPznV14nC0OOHklr377Ekz3nij9UV-0-42b096cd6d55c33628ec283b08e9d4ae)
图3.14 成绩判断结果
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_61.jpg?sign=1739275941-AY5qBGFg37XKyBIz5eNRPyUaUh5K2TxD-0-180d49ef1af99ac059752ae929b16f10)
这样即使result 等于0,也会输出no,因此很难判断else 与哪个if 配对。为了避免发生这种情况,最好添加大括号为代码划分界限,具体代码如下:
![img](https://epubservercos.yuewen.com/06B79A/19471983008810406/epubprivate/OEBPS/Images/txt004_62.jpg?sign=1739275941-nAHOb10RxYPXaW3hLTbyT3oqheFGX1tN-0-1536f5b89e8a982b31713cd7db41e26a)