2011-02-09 14 views
0
for (int i=1;i<10;i++) 
    { 
     if something == true 
      do something 
     else 
      do something 
    } 

ここでは、私が何をしたいです:については、ループの外 、私は私something = trueと私something = falseでのことを要約する必要があります。 someConditionboolean変数または式であることが想定されるはそれをマークするためにどのようにその時私は何か=真

+0

あなたが少しを明確にすることはできますか?私はかなり混乱しています。 – Mike

+0

あなたの質問を理解すれば、おそらく[このようなもの](http://stackoverflow.com/questions/2082449/how-to-filter-an-array-in-java)はあなたが探しているものです –

+0

何をしますかあなたは配列に入れたいと思うし、 "私"は何かが真実であることに関係している? – CoolBeans

答えて

6
List<Integer> positiveResults = new ArrayList<Integer>(); 
List<Integer> negativeResults = new ArrayList<Integer>(); 

for (int i = 1; i < 10; i++) 
{ 
    if (someCondition) 
     positiveResults.add(i); 
    else 
     negativeResults.add(i); 
} 

。あなたが明示的に代わりListの配列で結果をしたい場合は

、その後、あなたが持っているように見える

Integer[] resultsInArray = positiveResults.toArray(
     new Integer[positiveResults.size()]); 
+1

あなたは 'if(something == true)'を意味します、そうですか? –

+0

@Shakedown、確かに:-)私は、何かがその行にぴったりでないというわずかな感情を持っていましたが、それは私の意識の限界を克服しませんでした。ありがとう! –

+0

が正しい。私は意味 "=="。ありがとう – John

1

追加するにはループが間違って設定するために、条件文は途中で次のようになります。

for (int i = 1; i < 10; i++) 

が、質問に答えるために、あなただけのループの前に変数を宣言する必要があります:

int i = 1; 
for (; i < 10; i++) { 

} 
// You can still access i here since it is still in scope. 
+0

+1良いスポット! –

+0

申し訳ありませんが、私は質問に答えるには速すぎるかもしれませんし、なぜあなたが実際にそれをしたいのか考えないでください。この答えは、変数を宣言してループの外に引き続きアクセスする方法を示しています。他の答えはおそらくあなたが本当にあなたの場合にしなければならないことの点でより良いでしょう。 – DaveJohnston

0

まず、あなたのループ条件は、おそらく何をしたいのために間違った順序である:

for (int i = 1; i < 10; ++i) 

次に、私はあなたがループ本体内

if (something == true) 
{ 
    // do something 
} 
else 
{ 
    // do something *else* 
} 

をしたいと思います。

とにかく、do somethingの部分では、ローカルスコープのため、値はiです。その時点で、選択した配列に追加することができます。一覧で

0

例:

List<Integer> trueStates = new ArrayList<Integer>(); 

    for (int i=1;i<10;i++) 
    { 
     if (something == true) //e.g (i%2 == 0) 
      trueStates.add(i);  
    } 

forループあなたはtrueStateになります後、私に何か== trueを返します。別のオプションはあなたのすべての番号の状態を保持する使用マップです。地図と

例:

Map<Integer, Boolean> statesMap = new HashMap<Integer, Boolean>(); 
for (int i=1;i<10;i++) 
{ 
    statesMap.put(i, something == true);   
} 
関連する問題