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

时间:2015-02-06 17:50:43

标签: java loops for-loop

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

4 个答案:

答案 0 :(得分:3)

您可以这样做:

for (int i = 0; i < array.length - 1; i += 4) {
    // work with i and (i + 1)
}

答案 1 :(得分:2)

这段伪代码的某些部分将完成这项工作:

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
}

注意:通常在循环遍历数组时,您只需使用i<array.length-1,但因为您可能在此时跳过2,我相信您希望将数组的“OK”长度减少2个。 / p>

更新:使用切换实际工作的Java代码:

boolean skip = false;
for (int i=0; i<test.length-1; i+=2) {
    if (!skip) {
        System.out.println(test[i]);
        System.out.println(test[i+1]);
    }

    //int third = array[i+2]; //skip this
    //int fourth = array[i+3]; //skip this

    skip = !skip;
}

答案 2 :(得分:2)

是的,你需要一个循环,但两个会更简单。

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):

答案 3 :(得分:0)

您可以在for循环内引入任意数量的变量并迭代这些变量。它类似于使用两个循环,其优点是没有进行额外的迭代。

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

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]);
}