请帮忙解下面那道题,需要详细的解答过程,谢谢

#include<stdio.h>voidmain(){inti,j,a=0;for(i=0;i<2;i++){for(j=0;j<4;j++){if(j%2)break... #include <stdio.h>
void main()
{int i,j,a=0;
for(i=0;i<2;i++)
{for(j=0;j<4;j++)
{if(j%2)
break;
a++;
}
a++;
}
printf("%d\n",a);
}
展开
 我来答
zhangxueshuai1
2011-05-02 · TA获得超过226个赞
知道答主
回答量:125
采纳率:0%
帮助的人:0
展开全部
#include <stdio.h>
void main()
{int i,j,a=0; //对变量进行定义和初始化
for(i=0;i<2;i++)
{for(j=0;j<4;j++)
{if(j%2)
break;//如果满足if条件退出for(j=0;j<4;j++)循环
a++;//不满足执行这条语句,a自加
}
a++;//没执行一次for(i=0;i<2;i++)循环,a就再自加一次
}
printf("%d\n",a);
}
结果是6次
love浪天涯
2011-05-02
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
这个很简单:
for(j=0;j<4;j++)
{
if(j%2)
break;
a++;
}
这个语句每次执行if语句中的值也就是j%2每次都是等于0的,因为从i循环进入j循环时都要给j赋值为0,所以0%2的值始终为0。这样break语句没有执行过,直接跳到了break下面的a++执行,然后跳出内层for循环执行外层的a++语句;外层for循环一共执行了两次,这样内层的a++执行两次,外层的a++也执行两次,一共4次,所以输出结果应该为4!
更多追问追答
追问
第一个a++是否是内层for的循环语句,如果是的话执行了它就应该要执行j++啊,如果不是的话,请说出理由,我认为第二个for后面是选择语句,应该属于循环语句啊
追答
第一个a++是内层for循环的语句,执行j++之后,j%2取余就不等于0了,也就是说要执行break语句,这样就会跳出内层的for循环,执行外层的a++语句,执行完之后i++继续执行内层循环,和上次一样。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式