需要编写名为clearStacks()的方法,将最近创建的机器人向前移动,直到它到达墙壁,然后拾取所有蜂鸣器。该方法应该不返回任何值 并没有参数。 它还有副作用:该方法打印机器人在每个堆栈中拾取的蜂鸣器数量。假设一行有3个堆栈,输出可能如下所示:
Beepers:4 Beepers:1 Beepers:7
我的问题是我无法写出机器人在每个堆栈中拾取了多少蜂鸣器。只有总量。我是Java新手.. 我的代码:
void clearStacks() {
int beepers=0;
while(isSpaceInFrontOfRobotClear()) {
moveRobotForwards();
while(isItemOnGroundAtRobot()) {
pickUpItemWithRobot();
++beepers;
println(beepers);
}
}
}
答案 0 :(得分:2)
在检查堆栈之前,您需要重置计数。然后,您需要使用条件语句来查看清除堆栈后是否拾取了任何蜂鸣器(或确定堆栈不存在)。
void clearStacks() {
int beepers=0;
while(isSpaceInFrontOfRobotClear()) {
moveRobotForwards();
/* Reset the count of beepers. */
beepers = 0;
/* Pick up any beepers at current spot. */
while(isItemOnGroundAtRobot()) {
/* Pick up beeper, and increment counter. */
pickUpItemWithRobot();
++beepers;
}
/* Check to see if we picked up any beepers.
* if we did, print the amount.
*/
if(beepers > 0){
println(beepers);
}
}
}
答案 1 :(得分:0)
也许尝试实现一个数组?您可以使用前3个元素来表示前3个堆栈,然后该值可以表示每个堆栈中拾取的蜂鸣器数量。
int[] beepers = new int[3];
int count = 0;
while(isSpaceInFrontOfRobotClear()) {
moveRobotForwards();
while(isItemOnGroundAtRobot()) {
pickUpItemWithRobot();
beepers[0]++;
if (count > #numberOfBeepers) {
break;
}
}
for (int i: beepers) {
System.out.print(beepers[i] + " ")
}
}
}
如果这回答了您的问题,或者它没有
,请告诉我