我不太明白运行过程和运行结果的x为什么是0,为什么呀?

#include<stdio.h>
main()
{ int x,y;
for(x=30,y=0;x>=10,y<10;x--,y++)
x/=2,y+=2;
printf("x=%d,y=%d\n",x,y);
}
问:运行结果为什么
答案是x=0,y=12
我算出来是x=1,y=12 为什么呀为什么

过程应该是这样的:

int x,y;
    for(x=30,y=0;x>=10,y<10;x--,y++)   //这个判断条件需要2个都不满足才跳出循环
    {
        x/=2,y+=2;
    }

    printf("x=%d,y=%d\n",x,y);

    //第一次循环 x的值为30
        //30/2=15  y=2 然后x自减,y自加  x=14,y=3
    //第二次循环
        //14/2=7  y=3+2=5  x自减  y自加 x=6,y=6
    //第三次循环
        // x=6/2=3  y+2=8  x自减  y自加 x=2,y=9
    //第四次循环
        // x=2/2=1  y+2=11  x自减  y自加 x=0,y=12

首先x>=10,y<10作为循环结束判断条件,实际有效的只有y<10,x>=10这个条件是不起作用的
其次当x=1结束循环时,由于for的原因,x--还需要被执行一次的