关于 if 条件判断结构的嵌套使用的分析
代码介绍
这是一个项目中的代码实现(片段)。
该方法为了判断团队中的架构师,设计师和程序员的数量。
其中,架构师继承设计师类,设计师继承程序员类。
上面的if
使用了嵌套方法,和下面的代码运行起来有本质的区别。
区别在于:
在第一个if
结构中,如果满足p instanceof Architect
,那么将进入循环,而在第二个if结构中,必须满足两个条件才能进入循环。
假设:
现在有两名设计师,需要把一名架构师添加进团队。
在第一个if
中,架构师满足进入循环的条件,但是不满足架构师人数>=1
这个条件,那么程序不会抛出异常,将会继续执行并把该架构师添加进团队。
第二个中,架构师不满足进入首个if
判断的条件,因为此时架构师人数numOfArch=0
,所以将会进行下一个判断,此时,架构师是设计师的子类并且numOfDes=2
,满足进入的条件,将会抛出团队至多只能有两名设计师的异常。
结论
if的嵌套结构和使用&&改写嵌套结构有本质区别,一定要注意。