Java循环,如何按不同的值递增?

Java循环,如何按不同的值递增?,java,loops,for-loop,Java,Loops,For Loop,我有一个数组,我想用一个for循环按如下方式来处理它:使用2个元素,然后跳过2个元素,然后使用2个元素等等。 例如,如果我有和int数组:12345678910 我想先处理1和2,然后跳过3和4,然后再处理5,6,跳过7,8等等。 这在java中可能吗?您可以这样做: for (int i = 0; i < array.length - 1; i += 4) { // work with i and (i + 1) } for(int i=0;i

我有一个数组,我想用一个for循环按如下方式来处理它:使用2个元素,然后跳过2个元素,然后使用2个元素等等。 例如,如果我有和int数组:
12345678910
我想先处理1和2,然后跳过3和4,然后再处理5,6,跳过7,8等等。
这在java中可能吗?

您可以这样做:

for (int i = 0; i < array.length - 1; i += 4) {
    // work with i and (i + 1)
}
for(int i=0;i
类似于此伪代码的内容将完成此任务:

for (int i=0; i<array.length-3; i+=4) {
    int first = array[i];
    int second = array[i+1];
    //int third = array[i+2]; //skip this
    //int fourth = array[i+3]; //skip this
}

for(inti=0;i是的,您需要一个循环,但两个更简单

for (int i = 0; i < N; i += 4)
    for (int j = i; j < i + 1; j++)
        System.out.println(j);

您可以在
for
循环中根据需要引入任意多的变量,并对这些变量进行迭代。这类似于使用两个循环,其优点是不需要进行额外的迭代

这里最主要的一点是,您每次都会跳过数组中的四个条目。这适用于这两个变量,并且您还希望确保这两个变量都小于整个数组的长度(因此您不会错误地跳出它)

for(int i=0,j=i+1;i
是的,这是可能的。请显示您尝试过的内容。如果数组是
{1,2,3,4,5}
,它应该也打印出“5”还是数组总是偶数?使用
i+1
i=array.length-1
时要小心。我认为它实际上应该是沿着
数组的路线。length-3
的,对吗?以确保我们可以跳过2/使用2。我不认为
array.length-3
可以做到这一点.g.
int[]test={0,1,2,3,4,5}
。使用切换来确定我们是在读取值还是跳过值。我认为这是最简单的方法,而不是使用模块化数学或减法来确定何时在循环中继续。这里使用切换比复杂的for循环试图操作其中的变量更容易遵循
for (int i = 0; i < N; i += 4)
    for (int j = i; j < i + 1; j++)
        System.out.println(j);
IntStream.range(0, N)
         .flatMap(i -> IntStream.range(i+1, i+3))
         .forEach(System.out::println):
for (int i = 0, j = i + 1; i < array.length && j < array.length; i += 4, j += 4) {
    System.out.printf("(%d, %d) ", array[i], array[j]);
}