//获取团队中已有的架构师,设计师,程序员的人数
int numOfArch = 0,numOfDes = 0,numOfPro = 0;
for(int i = 0;i < total;i++) {
if(team[i] instanceof Architect) {
numOfArch++;
}else if(team[i] instanceof Designer) {
numOfDes++;
}else if(team[i] instanceof Programmer) {
numOfPro++;
}
}
if(p instanceof Architect) {
if(numOfArch >= 1) {
throw new TeamException("已有架构师一名");
}
}else if(p instanceof Designer) {
if(numOfDes >= 2) {
throw new TeamException("已有设计师二名");
}
}else if(p instanceof Programmer) {
if(numOfPro >= 3) {
throw new TeamException("已有程序员三名");
}
}
//if(p instanceof Architect && numOfArch >= 1){
// throw new TeamException("已有架构师一名");
// }else if(p instanceof Designer && numOfDes >= 2) {
// throw new TeamException("已有设计师二名");
// }else if(p instanceof Programmer && numOfPro >= 3) {
// throw new TeamException("已有程序员三名");
// }
同样是判断团队中是否人数够,为什么下面我注释的那个方法就不行,比如我先添加两个设计师再添加一个架构师上面运行就没问题,下面就报已有设计师两名异常
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- CSDN专家-link 2022-04-22 10:29关注
两段代码完全不同的啊。
第一段代码,if...else的条件是新加入的人的职位是什么。
第二段代码,if...else的条件是新加入的人的职位以及该职位的人数。
当你新加入架构师时,第一段程序会进行 if(p instanceof Architect) 函数段,不会进入另外两个else函数段。但第二段程序,由于架构师还没有,所以不会进入第一个if,会判断第二个else if。为什么第二个else if会成立,应该是你的类继承关系的原因吧。架构师的父类是设计师,设计师父类是程序员,所以p如果是架构师,同时它也满足是设计师,也满足是程序员本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度