-6

私は自分のプログラムで何か助けが得られるかどうか疑問に思っていました.これらには以下が必要です:

次に、この新しい配列の値を取得および設定する 2 つのパブリック メソッドを追加します。 public void uncover(int thisCol, int thisRow) uncover メソッドは、指定された正方形の状態を false に変更します。それ以外の場合、入力座標が地雷原の外にある場合、または正方形がすでに覆われている場合、何もしません。

public boolean isCovered(int thisCol, int thisRow) isCovered メソッドは、指定された正方形が覆われている場合に true を返します。それ以外の場合、入力座標が地雷原の外にある場合、または正方形が覆われていない場合は、false を返します。

以下にこれらのメソッドを作成しようとしましたが、正しいとは思いません。誰か見てもらえますか?

public void uncover(int thisCol, int thisRow) {
    if(thisCol <0 || thisRow < 0)
        return null;
    if(thisCol>=numCols || thisRow>=numRows)
        return null;
}

public boolean isCovered(int thisCol, int thisRow){
    if(thisCol >0 || thisRow > 0)
        return true;
    if(thisCol>=numCols || thisRow>=numRows)
        return true;
    else;
        return null;
}
4

3 に答える 3

0

配列が変数のクラス内で宣言されていると仮定します。

private boolean thisArray[][];

正しいuncover関数は次のとおりです。

public void uncover(int thisCol, int thisRow) {
    if(thisCol < 0 || thisRow < 0) return;
    if(thisCol >= numCols || thisRow >= numRows) return;
    thisArray[thisCol][thisRow] = true;
}

訂正:

  1. 関数が返すため、値のない return ステートメントvoid
  2. 最後の行の配列値の代入:thisArray[thisCol][thisRow] = true

正しいisCovered関数は次のとおりです。

public boolean isCovered(int thisCol, int thisRow){
    if(thisCol < 0) return false;
    if(thisRow < 0) return false;
    if(thisCol >= numCols) return false;
    if(thisRow >= numRows) return false;
    return thisArray[thisCol][thisRow];
}

訂正:

  1. 座標が正方形の外側にある場合falseは、返さなければなりませんtrue
  2. 最後の行に追加した配列の有効な値を確認することができませんでした。return thisArray[thisCol][thisRow];
于 2016-04-23T03:55:58.733 に答える
0

最初の方法:-

public void uncover(int thisCol, int thisRow)

これは無効なメソッドです。つまり、値を返すことはできません(null, true or false)

2 番目の方法:-

public boolean isCovered(int thisCol, int thisRow)

戻り値の型がブール値であるため、null を返すことはできません。だからそうあるべきだreturn false;

上記の変更を修正する必要があります。その後、コードで試すことができます。

于 2013-03-12T15:16:42.647 に答える
0

(C#での)私の理解では、「public void」は、呼び出し元に何も返していないことを示しています。したがって、「uncover」メソッドでは、Null を返そうとするとエラーが発生すると予想されます。

また、2 番目のものでは、戻り値の型がブール値であるため、「return null」という行にもエラーが表示されると予想されます。

于 2013-03-12T15:18:25.190 に答える