for (int i=1;i<10;i++)
{
if something == true
do something
else
do something
}
這是我想做的事: 循環外線,我需要總結,在我something = true
和我something = false
。如何紀念,在我的東西=真
for (int i=1;i<10;i++)
{
if something == true
do something
else
do something
}
這是我想做的事: 循環外線,我需要總結,在我something = true
和我something = false
。如何紀念,在我的東西=真
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);
}
someCondition
其中被認爲是一個可變boolean
或表達。
如果要明確在陣列中,而不是List
結果,再加入
Integer[] resultsInArray = positiveResults.toArray(
new Integer[positiveResults.size()]);
你似乎有你的for循環設置不對,條件語句應該是在中間:
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.
首先,你的循環條件是在錯誤的順序,你可能想要的東西:
for (int i = 1; i < 10; ++i)
接下來,我想你想
if (something == true)
{
// do something
}
else
{
// do something *else*
}
在循環體
。
無論如何,在do something
部分,您的值爲i
,因爲它在本地範圍內。在這一點上,你可以將它添加到你選擇的數組中。
例如用列表:
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);
}
你能澄清一下嗎?我很困惑。 – Mike 2011-02-09 23:01:19
如果我理解你的問題,可能[這樣的事情](http://stackoverflow.com/questions/2082449/how-to-filter-an-array-in-java)是你在找什麼 – 2011-02-09 23:03:04
做什麼你想要放入一個數組,那麼「我」與那個事情是否真實有什麼關係? – CoolBeans 2011-02-09 23:03:33