我在使用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 for循环,如上所述,但还没有结果。
希望你能提前帮助我!
答案 0 :(得分: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
:对程序没有影响的代码。Dead code
注意:这不是你问题的解决方案(因为我不知道)。它只是告诉你错误。
答案 1 :(得分:0)
Eclipse注意到我
i
和j
作为局部变量,它们没有被使用
那是因为你没有使用它们。您已经为它们分配了值,并且您之后已经增加(添加到)这些值,但您从未使用它们。
j++
被标记为“死代码”(?)
出于同样的原因,代码会增加j
的值,但永远不会使用j
,因此代码不执行任何操作。 “死代码”是指没有目的或永不运行的代码。
你的循环没有多大意义。例如:
for (int i = 0; x < size; i++) {
通常使用for
循环,控件变量(在这种情况下为i
)应出现在{{1>}语句的所有三个部分中(初始化器,测试和增量),如下所示:
for
但是你没有这样做,你只是在初始化器和增量中使用for (int i = 0; i < size; i++) {
// Change here -^
,从不在测试中使用i
。使用x < size
的循环也是如此。
同样地,除非某些内容改变j
,x
和/或y
的值,否则您的循环将永远不会运行(因为size
或{{ 1}}已经x
),运行一次(因为它发生在y
),或者它们将永远运行(因为>= size
或{{1是} board[x][u] == 'K'
,因为没有任何改变,他们只是继续循环......)。
答案 2 :(得分:0)
Eclipse正在为您提供错误所在的提示:
for (int i = 0; x < size; i++) {
for (int j = 0; y < size; j++) {
您迭代i
和j
,但您指定x < size
和y < size
作为条件。因此,您实际上从未使用i
和j
值,因此j++
和i++
是死代码。
如果你真的想使用循环,你应该使用你在for循环条件中用于迭代的变量:
for (int i = 0; i < size; i++) { // i instead of x
for (int j = 0; j < size; j++) { // j instead of y
答案 3 :(得分:0)
另外,我必须在二维数组的对角线上搜索具体类型的元素,我一直尝试使用2 for 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;
}