xzdjsnb 2022-04-22 10:06 采纳率: 92.2%
浏览 69
已结题

同样是判断团队中是否人数够,为什么下面我注释的那个方法就不行,比如我先添加两个设计师再添加一个架构师上面运行就没问题,下面就报已有设计师两名异常


    //获取团队中已有的架构师,设计师,程序员的人数
        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("已有程序员三名");
        //    }
  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2022-04-22 10:29
    关注

    两段代码完全不同的啊。
    第一段代码,if...else的条件是新加入的人的职位是什么。
    第二段代码,if...else的条件是新加入的人的职位以及该职位的人数。
    当你新加入架构师时,第一段程序会进行 if(p instanceof Architect) 函数段,不会进入另外两个else函数段。但第二段程序,由于架构师还没有,所以不会进入第一个if,会判断第二个else if。为什么第二个else if会成立,应该是你的类继承关系的原因吧。架构师的父类是设计师,设计师父类是程序员,所以p如果是架构师,同时它也满足是设计师,也满足是程序员

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 已采纳回答 4月24日
  • 创建了问题 4月22日

悬赏问题

  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能