触手饲养员汉化下载:找人帮解决问题

来源:百度文库 编辑:高考问答 时间:2024/04/29 00:39:33
#include <stdio.h>
main()
{
int i,j,x=0;
for(i=0;i<=2;i++)
{
x++;
for(j=0;j<3;j++)
{
if(j%2)
continue;
x++;
}
x++;
}
x++;
printf("x=%d\n",x);
}
以上答案X为什么会等于13????
有知道的人吗?能说简单说一下分析步骤吗!

外层循环( i 循环)每执行一次,内层循环会给X加2(因为当 j=0或2时都要跳过)continue 而去执行 x++ ,而外层循环每执行一次也要执行两次x++(因为外层循环中出现了两个x++),总的来说,外层循环一共执行了3次(i=0,1,2),相应每次内层循环也要执行3次(j=0,1,2),这样总共执行了12次 x++ ,从而把x由 0 改为12,最后循环完毕后还有一个x++,因此最后结果是 x=13

好BT的问题

***************************
for(j=0;j<3;j++)
{
if(j%2)
continue;
x++;
}
****************************
这一段实际上就是J=1时,X++执行;(此时j%2 =1,条件为真)

综合起来看,在最外层的FOR循环里,其实是3个X++,循环4次,此时,X=12。循环结束后,还执行了X++一次,于是X=13