Java if else if语句详解
实际开发中经常会遇到这样的情况,程序在不同的条件下,需要执行不同的逻辑代码。那么如何来实现呢?可以通过流程控制让程序分情况完成不同的业务逻辑。
例如,买衣服的时候根据身高来选择对应的尺码,身高(单位:cm)173 以下为 M 码,173~178 为 L 码,178 以上为 XL 码,请用程序实现这一逻辑,代码如下。
同时还可以再次变换写法,代码如下。
例如,某组织举办电子竞技大赛,预赛成绩在 80 分以上的可以进入决赛,根据年龄分别进入 A 组(20 岁及 20 岁以上)和 B 组(18~19 岁)。
本题是一个典型的条件中包含子条件的逻辑结构,第一维的条件是成绩大于 80 分,在此条件成立的基础上,第二维的条件是年龄大于等于 20 岁和年龄大于等于 18 并且小于 20,所以使用 if 嵌套可以实现,
if else语句
if else 是一个基本的流程控制语法,用于判断某个条件是否成立,然后执行不同的逻辑,基本语法如下:if(判断条件){ //条件成立的代码 }else{ //条件不成立的代码 }例如,商场举办促销活动,会员可参与有奖答题活动,得分大于 80 分即可获得满 100 减 20 优惠券一张,否则没有奖品,用 if else 语句实现这一场景,代码如下:
public class Test { public static void main(String[] args) { int score = 100; System.out.println("本次答题得分:"+score); if(score > 80) { System.out.println("恭喜您,获得满100减20优惠券一张!"); }else { System.out.println("很遗憾,您没有中奖。"); } } }运行结果为:
本次答题得分:100
恭喜您,获得满100减20优惠券一张!
本次答题得分:70
很遗憾,您没有中奖。
多重if
if else 是构成一个逻辑分支的基本结构,描述了程序可能执行的两种逻辑。如果一个程序可能会存在 3 种甚至更多种逻辑,该如何实现呢?这种情况下可以使用多重 if。例如,买衣服的时候根据身高来选择对应的尺码,身高(单位:cm)173 以下为 M 码,173~178 为 L 码,178 以上为 XL 码,请用程序实现这一逻辑,代码如下。
public class Test { public static void main(String[] args) { int height = 176; if(height > 178){ System.out.println("XL码"); } if(height >= 173 && height <= 178){ System.out.println("L码"); } if(height < 173){ System.out.println("M码"); } } }运行结果如下:
L码
对代码进行修改,使用 if else 的结构来完成,具体思路应该是这样的:先划分出身高(身高:cm)大于 178 和身高小于等于 178,再将身高小于等于 178 的代码块划分为身高大于等于 173 和身高小于 173,具体实现代码如下。public class Test { public static void main(String[] args) { int height = 176; if(height > 178){ System.out.println("XL码"); }else { if(height >= 173) { System.out.println("L码"); }else { System.out.println("M码"); } } } }
同时还可以再次变换写法,代码如下。
public class Test { public static void main(String[] args) { int height = 176; if(height > 178){ System.out.println("XL码"); }else if(height >= 173) { System.out.println("L码"); }else { System.out.println("M码"); } } }if else 的使用是比较灵活的,可以根据不同情况选择不同的组合方式,需要注意的是:
- if 后面必须跟(条件);
- else 后面不能跟(条件);
-
else 后面可直接跟
{ }
,也可跟 if 语句。
if嵌套
再次升级难度,如果遇到条件中包含子条件,那么使用单一的 if else 或者多重 if 已经不能满足需求了,它们只能在一个维度处理逻辑,如果再增加一个维度,就需要使用 if 嵌套来完成。例如,某组织举办电子竞技大赛,预赛成绩在 80 分以上的可以进入决赛,根据年龄分别进入 A 组(20 岁及 20 岁以上)和 B 组(18~19 岁)。
本题是一个典型的条件中包含子条件的逻辑结构,第一维的条件是成绩大于 80 分,在此条件成立的基础上,第二维的条件是年龄大于等于 20 岁和年龄大于等于 18 并且小于 20,所以使用 if 嵌套可以实现,
public class Test { public static void main(String[] args) { int score = 90; int age = 22; if(score > 80){ if(age >= 20){ System.out.println("成功晋级A组"); }else if(age >= 18){ System.out.println("成功晋级B组"); } } } }运行结果如下:
成功晋级A组