方法不返回正确的总数

时间:2015-12-18 14:30:36

标签: java methods

我写了一个方法,根据每个房间的床位是单人还是双人床,返回酒店的最大入住率。

public int calcOccupancy() {
    int total = 0;
    Room roomref;
    Bed bedref;

    for (int x = 0; x < room.size(); x++){
        roomref = room.get(x);

          for (int y = 0; y < roomref.numBeds(); y++){
              bedref = roomref.getBed(y);

              switch(bedref.bedNum()){
              case 1: total = total + 2;
              case 2: total = total + 1;
              default:break;
              }


          }
    }
    return total;
}

当我调用这个方法时,我似乎得到了相当随机的值,尽管它们永远不会超出它们应有的范围。

任何人都能弄清楚我做错了什么。如果需要,我可以从项目中提供更多代码。

3 个答案:

答案 0 :(得分:2)

您需要在语句结束后添加SYSNAME

break

否则case 1: total = total + 2; break; case 2: total = total + 1; break; 将被分配&amp;重新分配&amp;结束了。

答案 1 :(得分:0)

如果你没有为每个case添加break语句,你将会遇到下一个案例并且他们的代码将被执行:

如果匹配case 1,则会执行案例2的案例1 AND 的代码,结果会得到total + 3

像这样纠正:

switch(bedref.bedNum()){
              case 1: total = total + 2;break;
              case 2: total = total + 1;break;
              default:break;
              }

答案 2 :(得分:0)

你需要在案例1之后休息一下。休息一切似乎很好。

你的代码会发生什么,在执行到“case 1”之后,它不会从switch块中出来并执行“case 2”。