-6
public boolean isRight() {
    if(xposition == ( (oposition-1) && (oposition != (12 && 8 && 4))) {
        return true;
    } else {
       return false;
    }
}

「xposition」と「oposition」は、プログラムの実行時に値が割り当てられます。

エラーは、(12 && 8 && 4) 「oposition」の値が 12 と 8 と 4 に等しくないことを確認する必要があります。

ここで何が問題なのかわかりません。助けてください

4

4 に答える 4

6

ここで何が問題なのかわかりません。

ロジック。あなたは何(12 && 8 && 4)を評価すると思いますか?(ヒント: ですtrue)

それはそれらの値とは異なるoposition != (12 && 8 && 4)ことを意味すると思いますか?opposition

于 2012-08-28T13:07:28.323 に答える
2

たぶん正しい論理は次のとおりです。

if(xposition == ( (oposition-1) && (oposition != 12 && oposition != 8 && oposition != 4) ) )

あなたがたくさんの数を持っているならば:

int[] numbers = { 
    12, 8, 4, 13, 2, 7
};
boolean validation = true;
for (int i : numbers) {
    if (oposition == i) {
        validation = false;
        break;
    }
}
于 2012-08-28T13:08:41.240 に答える
1

エラーメッセージはわかりませんが、おそらく問題は、括弧内xpositionの結果と(数値のように見えます)を比較していることです。operator&&

また後で、言語で許可されていても、役に立たないように見えるoposition結果と比較しようとしています。(12 && 8 && 4)

括弧に注意してください。

おそらく、次のような意味でした:

if (xposition == opposition-1
    && opposition != 12
    && opposition != 8
    && opposition != 4)
{
    // ...  
}

インデントは、多くの条件がある場合に役立ちます。

于 2012-08-28T13:10:43.350 に答える
0

ここでの問題は、ブール ステートメントを (潜在的な) int 値と比較していることです。必要だと思うのは次のとおりです。

if((xposition == oposition-1) &&
        (oposition != 12 && oposition != 8 && oposition != 4)))

ステートメント 12 && 8 && 4 は意味がありません。個々の数値を変数と比較する必要があります。

于 2012-08-28T13:11:12.080 に答える