如何在java中的多个方法中进行计数器计数?

时间:2013-10-02 20:29:23

标签: java

机器人从面向东方的位置(0,0)开始。沿着该行随机放置几个蜂鸣器堆栈,每个堆栈包含许多蜂鸣器。机器人从朝东的位置(0,0)开始。沿着该行随机放置几个蜂鸣器堆栈,每个堆栈包含许多蜂鸣器。可能存在不同数量的蜂鸣器堆栈。但是在位置(0,0)总是有一个蜂鸣器堆栈,并且在位置(16,0)总是一个蜂鸣器堆栈 - (机器人世界的结束)。

需要编写一种方法,让机器人沿着行移动,随着它移动每个蜂鸣器堆栈。该方法应该不返回任何值并且不带参数。 机器人拿起最后一个堆栈后,程序应该打印出总共拾取了多少个蜂鸣器。 消息应如下所示:拾起蜂鸣器, 其中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;
}
}

我不能在所有堆栈中计数蜂鸣器。

1 个答案:

答案 0 :(得分:0)

您可以将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;
}

干杯!!