0

我在用 Java 开发以下代码时遇到了一些问题:

setPos(x, y);
for (int i = 0; x < size; i++) {
    for (int j = 0; y < size; j++) {
        if (board[x][y] == 'K')
        {
            System.out.println("You've found a key! CONGRATS!");
            return true;
        }

Eclipse 注意到我,i并且j,作为局部变量,它们没有被使用:The value of the local variable i is not used。如果我更改i并改写x,它告诉我我正在重复该变量。

j++被标记为dead code

另外,我必须在二维数组的对角线上搜索一种具体类型的元素,如上所述,我一直在尝试使用 2 个 for 循环,但还没有结果。

希望你能帮助我,在此先感谢!

4

4 回答 4

0

看这个:

setPos(x, y);
        if (board[x][y] == 'K')  //no i or j so they are unused. 
        {
            System.out.println("You've found a key! CONGRATS!");
            return true;
        }

If I change the i and write the x instead, it tells me that I'm repeating the variable.

因为 x 已经是一个变量(你的函数参数)。所以你不能再次声明它。

dead code:对程序没有影响的代码。死代码


注意:这不是您问题的解决方案(因为我不知道)。这只是向您展示错误。

于 2013-02-10T11:21:38.857 回答
0

Eclipse 注意到iand j,作为局部变量,它们没有被使用

那是因为你没有使用它们。您已经为它们分配了值,并且后来增加(添加到)这些值,但您从未它们用于任何事情。

j++被标记为“死代码”(?)

出于同样的原因,代码会增加 的值j,但j从未使用过,因此代码什么也不做。“死代码”是指没有目的或从不运行的代码。


你的循环没有多大意义。例如:

for (int i = 0; x < size; i++) {

通常在for循环中,控制变量(i在这种情况下)应该出现在语句的所有三个部分for(初始化器、测试和增量)中,如下所示:

for (int i = 0; i < size; i++) {
// Change here -^

但是你没有这样做,你只是i在初始化器和增量中使用,而不是在测试(x < size)中。你的循环也是如此j

类似地,除非有什么东西改变了, 和/或的值x,那么你的循环要么永远不会运行(因为or is already ),要么运行一次(因为它发生了),或者它们将永远运行(因为or is and since没有什么改变,他们只是不断循环......)。ysizexy>= sizeboard[x][u] == 'K'xy< size

于 2013-02-10T11:27:23.253 回答
0

Eclipse 会提示您错误在哪里:

for (int i = 0; x < size; i++) {
    for (int j = 0; y < size; j++) {

您迭代iand j,但您将x < sizeand指定y < size为条件。因此,您永远不会真正使用iandj值,因此j++andi++是死代码。

如果你真的想使用循环,你应该在 for 循环的条件下使用你用于迭代的变量:

for (int i = 0; i < size; i++) { // i instead of x
    for (int j = 0; j < size; j++) { // j instead of y
于 2013-02-10T11:28:10.363 回答
0

另外,我必须在二维数组的对角线上搜索一种具体类型的元素,如上所述,我一直在尝试使用 2 个 for 循环,但还没有结果。

为什么不使用单个for循环,如下所示:

for(int i = 0; i< size; i++)
    if(board[i][i] == 'K')
    {
        System.out.println("You've found a key! CONGRATS!");
        return true;
    }
于 2013-02-10T11:29:17.183 回答