for (int i=1;i<10;i++)
{
if something == true
do something
else
do something
}
这是我想要做的:
循环之外对于,我需要总结一下我something = true
以及i something = false
。
答案 0 :(得分: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);
}
其中someCondition
应该是boolean
变量或表达式。
如果您明确要将结果放在数组而不是List
中,请添加
Integer[] resultsInArray = positiveResults.toArray(
new Integer[positiveResults.size()]);
答案 1 :(得分:1)
你好像你的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.
答案 2 :(得分:0)
首先,您的循环条件的顺序与您可能需要的顺序错误:
for (int i = 1; i < 10; ++i)
接下来,我猜你想要
if (something == true)
{
// do something
}
else
{
// do something *else*
}
在循环体中。
无论如何,在do something
部分中,您拥有i
的值,因为它是本地范围的。此时,您可以将其添加到您选择的数组中。
答案 3 :(得分: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来保存你所有数字的状态。
地图示例:
Map<Integer, Boolean> statesMap = new HashMap<Integer, Boolean>();
for (int i=1;i<10;i++)
{
statesMap.put(i, something == true);
}