如何有效地检查100项?

时间:2015-09-25 21:22:58

标签: java

我正在用Java制作游戏。我希望能够检查以前是否访问过某个级别。 我想出了这个:

public class LevelTracker {

  boolean depth1visited = false;
  boolean depth2visited = false;
  // ..
  boolean depth100visited = false;


  private boolean LevelTracking() {
    if (Dungeon.depth == 1) {
      depth1visited = true;
    }
    if (Dungeon.depth == 2) {
      depth2visited = true;
    }
    // ..
    if (Dungeon.depth == 100) {
      depth100visited = true;
    }
  }
}

在我的情况下,必须独立检查每个深度,因为任何级别都可以从任何其他级别访问。所以这个:

if (depth > deepestdepth) {
  deepestdepth = depth;
}

在我的情况下不起作用。除非我错了,这是可能的。我可以告诉你,这是一个新手。

有什么更好的方法可以做到这一点?在这种情况下可以使用for循环吗?

1 个答案:

答案 0 :(得分:1)

使用可以通过索引寻址的数组。这可以替换您的所有if和100个单独的变量。

boolean[] depthVisited = new boolean[100];  // default values: false

然后你可以通过计算索引来访问数组。

depthVisited[Dungeon.depth - 1] = true;  // 0-based index

不需要for循环。