如何使计数器在java中的多个方法?
机器人从位置(0,0)向东开始。几个蜂鸣器堆栈随机放置在该行上,每个蜂鸣器都包含一些蜂鸣器。机器人从位置(0,0)向东开始。几个蜂鸣器堆栈随机放置在该行上,每个蜂鸣器都包含一些蜂鸣器。可能有不同数量的蜂鸣器堆栈。但是在位置(0,0)总是有一个蜂鸣器堆栈,而在位置(16,0)处总是有一个蜂鸣器堆栈 - (机器人世界的尽头)。如何使计数器在java中的多个方法?
需要编写一个方法,使机器人沿着该行移动,并拾取每个蜂鸣器堆栈。该方法应该不返回任何值并且不带任何参数。 机器人拿起最后一个堆垛后,程序应打印总共拾取了多少个捡拾器。 消息应该是这样的:拿起n个蜂箱, 其中n是拾取蜂箱的数量。 程序必须定义并使用这两个附加方法: moveRobotToNextStack(),它将机器人向前移动,直到找到下一个堆栈 和 pickUpBeeperStack(),它拾取堆栈中的所有存储器。 我的代码:
public class Q4 {
void pickUpAllStacks() {
int counter=0;
pickUpBeeperStack();
moveRobotToNextStack();
counter += pickUpBeeperStack();
print("Picked up "+ counter +" beepers");
}
void moveRobotToNextStack() {
while(isSpaceInFrontOfRobotClear()) {
moveRobotForwards();
pickUpBeeperStack();
}
}
int pickUpBeeperStack() {
int counter=0;
while(isItemOnGroundAtRobot()) {
pickUpItemWithRobot();
counter++;
}
return counter;
}
}
我不能在所有堆栈计数器计数传呼机。
你可以声明counter
为对象级别的变量:
int counter=0;
void pickUpAllStacks() {
pickUpBeeperStack();
moveRobotToNextStack();
counter += pickUpBeeperStack();
print("Picked up "+ counter +" beepers");
}
void moveRobotToNextStack() {
while(isSpaceInFrontOfRobotClear()) {
moveRobotForwards();
pickUpBeeperStack();
}
}
int pickUpBeeperStack() {
while(isItemOnGroundAtRobot()) {
pickUpItemWithRobot();
counter++;
}
return counter;
}
干杯!
但在你的代码中 - “counter”不是它的对象级别的类级变量。它似乎你想宣布,作为'静态' – exexzian
@sansix - 是的,我的意思是对象级别,谢谢:-) –
你可以使用一个静态的int计数器并在你的方法里增加它的值 – thiagoh
听起来像你想把“private int counter = 0;”在所有功能之外,并从功能中删除它。 – developerwjk
所以,如果我理解它正确,你想在'pickUpBeeperStack()'和'pickUpAllStacks()'方法中增加'counter'? –