假设数组foo由交替值组成,索引为0 = true,1 = false,2 = true等。 例如:
for (int index = 0; index < foo.length; index++)
我正在尝试通过仅使用一个语句来找到完成此代码的方法。到目前为止,我唯一的想法是:
foo[index] = !index--; // I want it to check the last Boolean of index, and reverse it
这当然是错误的代码并且不存在,但有没有办法交替并让它看起来像这样:
foo[index] = (code that goes in here);
答案 0 :(得分:4)
由于布尔数组最初都是假的。
boolean [] foo = new boolean[100];
for (int i = 0; i < foo.length; i+=2)
foo[i] = true;
答案 1 :(得分:3)
您可以使用位操作或模除法:
condition
或
foo[index] = (index & 1) == 0;
答案 2 :(得分:0)
一种方法是使用循环迭代到某个最大值,然后使用模数来确定布尔值:
boolean array = new boolean[foo.length];
for (int index = 0; index < foo.length; index++) {
array[i] = index % 2 == 0;
}
答案 3 :(得分:-1)
这样的事情应该有效:
Foo[index] = (index%2==0)
答案 4 :(得分:-1)
for (int index = 0; index < foo.length; index++)
foo[index]=!foo[index];
优化但是,如果你想要复杂,你也可以尝试。
for (int index = foo.length-1; index >0; index--)
foo[index]=foo[(index+1)%2];foo[index]=!foo[index];