回 帖 发 新 帖 刷新版面

主题:郁闷阿。这题目!84

int i=1,j=3,k=5;
do
{if(i%j==0)
if(i%k==0)
  {printf("%d\n",i);
     break;}
     i++;
   }while(i!=0);

这道题运行后的结果为15。麻烦给分析一下。谢谢了!理解不到阿

回复列表 (共1个回复)

沙发

此题 do循环的退出条件是i!=0 而i=1;又只做i++所以 要想退出循环只能指望break了

而要想 执行break就要同时满足i%3==0和i%5==0

所以 在do循环做的14次的时候i=15同时满足i%3==0和i%5==0 所以先打印i在break退出

由于 此题 比较好理解!所以 解释的有点概括!相信楼主能够看懂!

我来回复

您尚未登录,请登录后再回复。点此登录或注册