我试图遍历数组并在每次迭代中更改元素索引,例如start 1 0 0 0,然后是下一次迭代0 1 0 0,然后是下一次迭代0 0 1 0,以及最后一次0 0 0 1。
public static void main(String[] args) {
int [] b = {0,0,0,0};
for(int i = 0; i < b.length; i++){
b[0] = 1;
b[1] = b[i-1];
b[i-1] = 0;
}
}
答案 0 :(得分:1)
public static void main(String[] args) {
int [] b = {0,0,0,0};
for(int i = 0; i < b.length; i++){
if(i>0)
{
b[i-1] = 0;
}
b[i] = 1;
}
答案 1 :(得分:0)
在将1移动到下一个位置之前,声明起始条件并检查是否到达结尾:
public static void main(String[] args) {
int [] b = {1,0,0,0};
for(int i = 0; i < b.length; i++){
performInterestingStuffWithArray (b);
b[(i+1) % b.length] = 1;
b[i] = 0;
}
}
使用modulo也会起作用,但最后,你的b又是(1,0,0,0)。
public static void main(String[] args) {
int [] b;
for(int i = 8; i > 0; i/=2){
b=genArrayFromBits (i);
performInterestingStuffWithArray (b);
}
}
您也可以从二进制表示法的数字生成一个数组,从8到1:
int [] genArrayFromBits (i)
方法session_write_close()
留作练习,但实施起来非常简单。