问题描述:
int x=0;
if(i=0,i<2,i++)
{
x++;
if(j=0,j<2,j++)
{x++;}
x++;
}
printf("%d",x);
帮我分析下,每执行一次,这四个x的值分别等多少
是for 不好意思打错了
问题解答:
i = 0 时
第一个 x++ 之后,x = 1
j=0时 {x++;} 之后,x = 2
j=1时 {x++;} 之后,x = 3
j=2时 {x++;} 不执行,所以跳过。
j循环外的 x++ 之后,x = 4
i = 1 时
第一个 x++ 之后,x = 5
j=0时 {x++;} 之后,x = 6
j=1时 {x++;} 之后,x = 7
j=2时 {x++;} 不执行,所以跳过。
j循环外的 x++ 之后,x = 8
i = 0 时
第一个 x++ 之后,x = 9
j=0时 {x++;} 之后,x = 10
j=1时 {x++;} 之后,x = 11
j=2时 {x++;} 不执行,所以跳过。
j循环外的 x++ 之后,x = 12
printf("%d",x);
在屏幕上显示 12
if(i=0,i<2,i++)-----是for吧
如果是if,括号里是逗号运算符,那也太雷人了
i=0时
x++;得x=1
j=0
x++得x=2
j++得j=1
x++得x=3
j++得j=2
不符合。就跳出
x++.x=4
i++得i=1.
再循环次
x=8.
i++得i=2
跳出
楼主。。。if改成for.逗号改成;
for(i=0;i<2;i++);