内循环和外循环总弄错 答案是3,1,-1 结果怎么算的啊

#include <stdio.h>
int main ( )

int i,j;

for (i=0;i<3;i++,i++) {

for(j=4;j>=0;j--;){

if (j+i)%2) {
j--;

printf("%d,",j);
continue;

}
++i;
j--;

printf("%d,",j);
}
}
return 0;
}

修改如下,供参考:

#include <stdio.h>
int main ( )
{
    int i,j;
    for (i=0;i<3;i++,i++){
         for(j=4;j>=0;j--){
             if ((j+i)%2) {
                     j--;
                     printf("%d,",j);
                     continue;
             }
             ++i;
             j--;
             printf("%d,",j);
         }
    }
    return 0;
}

首先,i=0;j=4; (j+i)%2=0不满足if,所以执行if后面的++i;j--;,此时i=1;j=3;输出j,也就是3
接着,i=1;j=3;进入第二层的第二次循环,j--,此时i=1;j=2; (j+i)%2=1满足if,j--,此时j=1;输出j,也就是1,
然后continue;进入第二层的第三次循环,j--,此时i=1;j=0;(j+i)%2=1满足if,j--,此时j=-1;输出j,也就是-1,
然后continue;进入第一层的第二次循环,i++;i++;此时i=3,不满足i<3,跳出循环。

这个最好的办法,就是加个断点,一步一步的看i跟j的值,3是外面的第一次循环,里面循环的第一次,1是外面第一次,里面第二次,-1是外面第一次,里面第三次

代码有误,没法看出错误