这是我的解决方案。 我的代码:Java中的返回声明
boolean pickUpNBeepersCheckIfAll(int beeper) {
int counter=0;
while(beeper>counter) {
pickUpItemWithRobot();
counter++;
}
return false;
}
应该有什么问题在这里,但我不能找到一个错误..
这是我的解决方案。 我的代码:Java中的返回声明
boolean pickUpNBeepersCheckIfAll(int beeper) {
int counter=0;
while(beeper>counter) {
pickUpItemWithRobot();
counter++;
}
return false;
}
应该有什么问题在这里,但我不能找到一个错误..
的问题是行动的错误的顺序采取
int counter=0; //set conter to 0
while(beeper>counter) {
pickUpItemWithRobot();
counter++; //increment counter e.g. it will be 1 in the first loop
if(counter==0) return true; //never true...
好, counter++
是邮政运营商,但,这意味着在评估表达式后完成 - 而不是循环完成后。所以下一个表达式会看到新的值:例如1为第一次迭代...
boolean pickUpNBeepersCheckIfAll(int beeper) {
for (i = 0; i = beeper; i++ {
try {
pickUpItemWithRobot();
} catch (ItemNotFoundException e) {
return false;
}
}
return true;
}
在您的版本计数器永远不会0每增加一个循环。
显然你pickUpItemWithRobot()方法将需要抛出异常,如果它用完了蜂箱。
OP指出有足够的Beepers安全地执行循环,所以ItemNotFoundException永远不会被抛出。 – JTMon
boolean pickUpNBeepersCheckIfAll(int beeper) {
int counter=0;
while(beeper>counter) {
pickUpItemWithRobot();
counter++;
}
return true;
}
这是你寻找的东西吗?
没有。还有一个错误。 – user2817366
从我们所知,这应该是正确的版本。也许使用for循环而不是while。这也清楚地表明pickUpNBeepersCheckIfAll没有办法返回false。 – Alex
是什么样的?我认为你需要从方法“pickUpItemWithRobot()”返回类似布尔值的东西。如果pickUpItem成功发生,那么你可以做下一个计数。 –
您拥有的方法将始终返回false,因为计数器在检查时永远不会为0。你说如果没有更多的物品需要拾取,但你从不检查这种情况,你希望方法返回false。你也说有足够的提示来确保pickUpItemWithRobot()永远不会失败。你必须有寻呼机总数的地方(我现在假设pickUpItemWithRobot()返回左传呼机的号码您希望是这样的:
boolean pickUpNBeepersCheckIfAll(int beeper) {
int beepersLeft;
for (i = 0; i < beeper; i++ {
beepresLeft = pickUpItemWithRobot();
}
return beepersLeft > 0;
}
如果pickUpItemWithRobot()不能返回传呼机的号码离开然后返回语句应该是服用点,如:??
return getNumberOfBeeprsLeft() > 0;
“应该有什么错在这里,但我不能找到一个错误。”怎么了怎么了预期的结果 –
如果有帮助,反会从不= 0,所以这个函数永远不会返回true – Rawrgramming
对于初学者计数器== 0永远不会计算为真 – Leon