#include "iostream.h"
int main()
{
int k,m,n;
for(k=0,m=1;m<4;m++)
{for(n=1;n<5;n++)
if(m*n%3==0)continue;
cout<<m<<" "<<n<<endl;
k++;
}
cout<<k;
}
这个代码的结果为什么是
1 5
2 5
3 5
3
为什么会有5输出,k为什么是3?
2 回答
已采纳
打编辑的草稿
TA贡献2条经验 获得超4个赞
这里的两个for与一个continue很容易引起错误理解;我们知道continue语句是为了跳过一次for循环,但这里是哪一个for呢?毫无疑问是里面的for循环:
for(n=1;n<5;n++) if(m*n%3==0)continue;
这个时候跳过这个循环有什么影响呢?答案是:P影响都没有,因为continue后面没有这个for循环的语句了,而
cout<<m<<" "<<n<<endl; k++;
是第一个for循环的语句。所以里面for循环的作用就是将n从1遍历到5,这时候再输出m,n;之后k++;总共三次这样的循环,所以是以上结果。
添加回答
举报
0/150
提交
取消