2011-11-15 2 views
0

問題は私が実行している問題です。配列の各部分を条件に対してテストしたい場合、配列のすべての部分がfalseを返す場合は、何かをするが、いずれかが真実に戻るなら、私は何か他のことをしたい。例えば、elseを実行する前にJava配列を完全に反復処理します。

String[] arr = new String[8]; 
    for(String s : arr) { 
    if(s.equalsIgnoreCase("example") { 
     // Do this 
    } else { 
     // do that 
    } 
    } 

上記の問題は、これを行うか、または8個すべての配列に対して行うことです。私が望むのは、それらのすべてをテストすることです。もしそれらがすべて偽であるなら、それを実行します。しかし、いずれかが真であれば、これを実行します。

答えて

3

言います。 ANYが偽であるかどうかをテストしていましたが、 "これを実行"し、ALLがTRUEなら "Do that"をテストしていました。このコードを試してください:

String[] arr = new String[8]; 
boolean found = false; 
for(String s : arr) { 
    if(s.equalsIgnoreCase("example")) { 
     found = true; 
     break; 
    } 
} 
if(found) { 
    // Do this 
} else { 
    // Do that 
} 
+0

私は文字通り、ちょうど正しい方法で条件を反映するために他の答えを編集し終わった:Pありがとう – CaldwellYSR

+0

それでも間違っている。 :S – Wagan8r

+0

これは私の編集をピアレビューする必要があるからです...編集が必要ないので正しいので、これを正しいとマークします。 – CaldwellYSR

5
String[] arr = new String[8]; 
boolean isAllGood = true; 
for(String s : arr) { 
    if(!s.equalsIgnoreCase("example") { 
     isAllGood = false; 
     break; 
    } 
} 

if(isAllGood) { 
    //do this 
} else { 
    //do that 
} 
+1

私はそれが好きです。感謝 – CaldwellYSR

+0

@カルドウェイズ:Np。ようこそ。 –

+0

この例は、条件が逆方向であり、望ましい方法では動作しません。 – Wagan8r

0

あなたが別の関数にループを抽出する必要がありますが、以前の答えは後方の条件を持っているisSomeCondition(String []型someArr)

関連する問題