如何使计数器在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; 
} 
} 

我不能在所有堆栈计数器计数传呼机。

+1

你可以使用一个静态的int计数器并在你的方法里增加它的值 – thiagoh

+0

听起来像你想把“private int counter = 0;”在所有功能之外,并从功能中删除它。 – developerwjk

+0

所以,如果我理解它正确,你想在'pickUpBeeperStack()'和'pickUpAllStacks()'方法中增加'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; 
} 

干杯!

+1

但在你的代码中 - “counter”不是它的对象级别的类级变量。它似乎你想宣布,作为'静态' – exexzian

+0

@sansix - 是的,我的意思是对象级别,谢谢:-) –