#include<stdio.h>
int main()
{
int x = 3, y = 6, a = 0;
while (x++!= (y -= 1))
{
a += 1;
if (y < x)
break;
}
printf("x=%d,y=%d,a=%d", x, y, a);
}
x++先使用x判断与y的关系,判断过后再++
第一次循环中优先运算y-=1,y=5,x=3,故a=1,循环之后x=4;
第二次循环中优先运算y-=1,y=4,x=4,故退出循环,循环之后x=5;
最终x=5 y=4 a=1;
#include<stdio.h>
int main()
{
int x = 3, y = 6, a = 0;
while (++x!= (y -= 1))
{
a += 1;
if (y < x)
break;
}
printf("x=%d,y=%d,a=%d", x, y, a);
}
++x是先++然后再判断x与y的关系。
第一次循环中优先运算y-=1,y=5,然后运算++x x=4, 然后进行判断x和y 故a=1。
第二次循环中优先运算y-=1,y=4,然后运算++x x=5, 然后判断x和y ;进行后续操作,得出a=2.