告诉我这个输出是如何产生的

时间:2017-11-24 02:02:51

标签: c++

这是我的代码:

for(int x=1;x<=5;x++) {
    for(int x=0;x<=1;x+=1) {
        cout<<"###############"<<endl;
    }
}

为什么它会像这样打印10行:

    ###############
    ###############
    ###############
    ###############
    ###############
    ###############
    ###############
    ###############
    ###############
    ############### 

如果我单独运行每个循环,它将为第一个循环打印5行,为第二个循环打印2行。这2个循环如何一起运行?

2 个答案:

答案 0 :(得分:0)

尝试添加一些诊断打印语句:

for(int x=1;x<=5;x++)
{
    cout << "--> x before inner loop" << x << endl;
    for(int x=0;x<=1;x+=1)
    {
        cout << "--> x in inner loop" << x << endl;
        cout<<"###############"<<endl;
    }
}

答案 1 :(得分:0)

for(int x=1;x<=5;x++)
{
    for(int x=0;x<=1;x+=1)
    {
        cout<<"###############"<<endl;
    }
}

想一想:假设你每天写2行并且你继续做5天的工作,那么到那时你会写10行。

如果你在想为什么它不应该是5或7,那是因为第3行的int x=0 "hides"是外x,所以两个变量{{1}彼此是孤立的,他们不会发生冲突。