0

true または false について 9 つの条件をチェックする必要があり、それらは一度にすべて true である必要があります。どうすれば確認できますか

if (condition1 && condition2 && condition3 ... && condition9) {
    ...
}

「状態」という言葉を正しく使ったと思います。

4

2 に答える 2

3

それ以上のコードを表示しないとわかりにくい.....

ただし、そのコードしかない場合は、次の 3 つのことをお勧めします。

1.この情報がある場合は、偽である可能性が最も高い条件から始めてください。これにより、パフォーマンスが向上する可能性があります。詳細については、こちらをご覧ください

2.もう 1 つのことは、すべての条件が配列にある場合、配列をループすることができます...次のようなものです。

public boolean testCondition(boolean conditionsArray[]){
    for(int i = 0; i < array.length; i++){
        if(!conditionsArray[i])
            return false;
    }

    return true;
}

もっとコードを投稿して、答えを改善しようとします。

3.データ構造についても再考する必要があるかもしれません。そのような9つの特定の条件をテストする必要がある場合、おそらく設計の何かがあまりきれいではありません(おそらく)。

それが役に立てば幸い。

于 2013-09-17T20:07:42.463 に答える
0

コードでこのような状況に陥ると、自分のやり方が間違っていることがわかり、オブジェクト構造を再考する必要があります。

ただし、質問の純粋なレベルでは、条件が何らかのコレクションにある限り、これは機能します。

    boolean allTrue = true;
    for (boolean condition : conditions) {
        allTrue &= condition;
    }

そして、allTrue 変数に対して if を実行します。コレクションが空ではない、または空である場合、それは真の条件と見なされるべきであると想定していることに注意してください。

ほとんどの場合、現実の世界では、純粋なブール値のコレクションを持つのではなく、ブール値を返し、それを使用するメソッドを備えた共通のインターフェイスを持つある種のオブジェクトでこれらの条件をラップする必要があります。

于 2013-09-17T20:13:22.227 に答える