关于一个概念性的有关问题,求解

关于一个概念性的问题,求解
int j;
for(j=10;j>3;j--)
{
  if(j%3)
  j--;
  --j;
  --j;
}
printf("%d",j);
我的理解:j=10后开始循环,到第一个if(10%3==1),结果为真,然后往下执行,自减三下。第二次从6开始,到了第二次if(6%3==0),结果为假,不执行下面的。然后从循环5开始,到第三次循环从5开始,到了第三次if(5%3==2),结果为真,再自己减3下,最后结果就是为2.
结果为3,思想哪里错掉了,求高手指导迷津!

------解决方案--------------------
探讨
如果if语句没有括号的话是以第一个分号为结束吗?

------解决方案--------------------
探讨

为什么要在第一个j--就断下来了,它们不是一起的吗?