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気づきました: 。を変更して代わりに書き込むと、変数を繰り返していることがわかります。jThe value of the local variable i is not usedix

j++としてタグ付けされていdead codeますか?

また、2次元配列の対角線上で具体的なタイプの要素を検索する必要があります。上記のように、2つのforループでこれを試しましたが、まだ結果がありません。

よろしくお願いします。

4

4 に答える 4

0

また、2 次元配列の対角線上の要素の具体的な型を検索する必要があります。上記のように 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 に答える
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は、ローカル変数として、それらが使用されていないことにi気づきましたj

それはあなたがそれらを使っていないからです。それらに値を割り当て、後でそれらの値をインクリメント (追加) しましたが、それらを何にも使用していません。

j++「デッドコード」(?) としてタグ付けされています

同じ理由で、コードは の値をインクリメントしますがjj使用されないため、コードは何もしません。「デッド コード」とは、目的のないコード、または実行されることのないコードを指します。


あなたのループはあまり意味がありません。例えば:

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

通常、forループでは、次のように、制御変数 (iこの場合) がステートメントの 3 つの部分(初期化子、テスト、およびインクリメント) のすべてに表示されます。for

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

しかし、あなたはそうしていません。iイニシャライザとインクリメントでのみ使用しており、テストでは使用していません ( x < size)。を使用したループについても同じことが言えますj

同様に、xy、および/またはの値を変更する何かがない限りsize、ループは実行されない ( xoryが既にであるため) か、 1 回>= size実行される( or が既に であるため) か、永久に実行される ( orであり、それ以降であるため) かのいずれかです。何も変わらず、ループし続けるだけです...)。board[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を繰り返しますが、条件としてandjを指定します。したがって、実際にはandの値を使用することはないため、 andはデッド コードです。x < sizey < sizeijj++i++

本当にループを使用したい場合は、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 に答える