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