C语言一个自加的一个问题?

发布时间:2024-05-09 19:13 发布:上海旅游网

问题描述:

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++);

热点新闻