请帮忙解下面那道题,需要详细的解答过程,谢谢
#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);
} 展开
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);
} 展开
2个回答
展开全部
这个很简单:
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!
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++继续执行内层循环,和上次一样。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询