{ int i; for (i=0;++i;) { if(i==3) { printf("%d\n",++i); break; } printf("%d",++
答案:4 悬赏:80
解决时间 2021-02-12 15:53
- 提问者网友:心裂
- 2021-02-12 08:59
{ int i; for (i=0;++i;) { if(i==3) { printf("%d\n",++i); break; } printf("%d",++
最佳答案
- 二级知识专家网友:山鬼偶尔也合群
- 2021-02-12 09:12
输出的是2 4,不是24,
{ int i;
①for (i=0;++i;)
{
② if(i==3)
④ { printf("%d\n",++i);
break; }
③ printf("%d",++i);
}
return 0;
}
①.第一次进入循环时,执行for (i=0;++i;) 时,首先 i 被赋0,然后执行 ++i,正常中间的语句放条件语句,进行循环判断,可现在是++i ,所以一进循环i 就已经是1了.
②. 接下来判断 if(i==3) ,不成立,执行③ printf("%d",++i); 先加加再打印,打出来的是2
接下来回到①for (i=0;++i;) 应该执行for的第二句进行循环判断,可执行的还是++i.所以些时i是3。
进入循环, 接下来判断 if(i==3) ,成立,执行④ printf("%d",++i); 先加加再打印,打出来的是4。
最后就是你看到的24了。。。呵呵
{ int i;
①for (i=0;++i;)
{
② if(i==3)
④ { printf("%d\n",++i);
break; }
③ printf("%d",++i);
}
return 0;
}
①.第一次进入循环时,执行for (i=0;++i;) 时,首先 i 被赋0,然后执行 ++i,正常中间的语句放条件语句,进行循环判断,可现在是++i ,所以一进循环i 就已经是1了.
②. 接下来判断 if(i==3) ,不成立,执行③ printf("%d",++i); 先加加再打印,打出来的是2
接下来回到①for (i=0;++i;) 应该执行for的第二句进行循环判断,可执行的还是++i.所以些时i是3。
进入循环, 接下来判断 if(i==3) ,成立,执行④ printf("%d",++i); 先加加再打印,打出来的是4。
最后就是你看到的24了。。。呵呵
全部回答
- 1楼网友:随心随缘不随便
- 2021-02-12 11:32
i从0开始进入循环,因为i!=3执行可printf ++i也就是2
之后执行循环判断++i 逻辑为真i变为3
进入循环i==3成立执行printf ++i也就是4
break直接退出循环
- 2楼网友:情窦初殇
- 2021-02-12 10:34
先说24,其实是2次输出,第一次输出2,第二次输出4
你可在%d后面加\n或空格看下效果
i=0,然后++i,就等于i=1
i不等于3,直接输出++i,++i是先赋值再输出,就是i=1的基础上加1,i=2,输出
然后在for循环语句二中++i一次,i=3了,进入条件语句,同理++i输出等于4,
break跳出循环,就结束了
- 3楼网友:苦柚恕我颓废
- 2021-02-12 09:36
for格式为:for(1;2;3){语句;},先执行1,再执行2, 判断2不为“0”的话再执行“语句”。最后执行3.这题先执行i=0, 然后执行++i;判断 ++i不为“0”然后执行下面的if语句,不满足if(i==3),然后执行 printf("%d",++i); 这其中进行了两次++i;所以i的结果是2,先输出了2。因为++i永远不为"0",所以for循环会一直执行,想要跳出for循环只能使用break;所以i结果为2输出后,继续执行for循环,又进行++i;此时i的结果为3,然后执行下面的if语句,满足if(i==3)执行{ printf("%d\n",++i); break; } .i再次进行++i;结果变为4输出。再执行break语句,跳出for循环。执行 return 0; 程序结束。所以最后输出的结果是24.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯