C++ for循环中的同时变化

Simultaneous changes in C++ for-loop

我有以下代码:

for (int i = 0; i < 4; i++){
        for (int j = 7; j > 3; j--){
            cout << array[i];
            cout << array[j];
        }
    }

这里先把j的值改了四次,然后程序开始改i的值。 编辑:比方说,数组包含与其位置相关的数字:array[0] = 0、array[1] = 1 等等。此方法创建以下序列: 0 7 0 6 0 5 0 4 1 7 ... 而不是这个,我想要 0 7 1 6 2 5 ... 如何让它们同时变化?

例如

for ( int i = 0, n = 3, m = 4; i < 4; i++ )
{
    cout << array[n - i];
    cout << array[m + i];
}

编辑:在您按以下方式更改问题中的代码后

for (int i = 0; i < 4; i++){
        for (int j = 7; j > 3; j--){
            cout << array[i];
            cout << array[j];
        }
    }

然后循环可以看看

for ( int i = 0, n = 7; i < 4; i++ )
{
    cout << array[i];
    cout << array[n - i];
}

另一个例子:

int j = 4;
for (int i = 3; i > -1; i--) {
    cout << array[i];
    cout << array[j];
    j++;
}

您可以在数组内部使用距末尾的偏移量,如下所示:

for(int i = 0; i < 4; ++i)
  cout << array[i] + array[7 - i];