对于循环被跳过,为什么?

时间:2012-11-05 16:05:01

标签: c++ for-loop

我有一个作业,我必须在c ++中创建一个以给定样式绘制六边形的控制台程序。我遇到的问题是;永远不会输入我的For循环,我无法弄清楚原因。这是我遇到问题的代码片段。

    void display()
{
    int counter=0;//var that keeps track of the layer that is being drawn
    for(int i=0;i>=size;i++)//spaces before first layer of hexagon
    {
        cout<<" ";
    }
    for (int k=0; k>size;k++)//top layer of hexagon
    {
        cout<<"_";
    }
    cout<<endl;//ends the first layer
    for (counter; counter>=size-1;counter++)//outer loop for the top half that controls the size
    {
        for( int j=0;j>(size-counter);j++)//adds spaces before the shape
        {
            cout<<" ";
        }
        cout<<"/";
        for( int p=0; p>(size+(counter*2));p++)//loop for the hexagon fill
        {
            cout<<fill;
        }
        cout<<"\\"<<endl;
    }
    for(counter;counter==0;counter--);  //loop for bottom half of the hexagon
    {
        for( int j=0;j>(size-counter);j++)//adds spaces before the shape
        {
            cout<<" ";
        }
        cout<<"\\";
        for( int p=0; p>(size+(counter*2));p++)//loop for the hexagon fill
        {
            cout<<fill;
        }
        cout<<"/"<<endl;
    }
    cout<<"\\";
    for(int r=0; r>=size;r++){cout<<"_";}
    cout<<"/"<<endl;

}

在我的main()期间,程序中的“大小”和“填充”被选中 我可能错过了一些非常简单的事情,但我一直在努力解决这个问题。任何帮助都会得到很大的帮助!

6 个答案:

答案 0 :(得分:4)

您的循环使用>并从0开始。您似乎想要<。例如

for(int i=0;i<size;i++)//spaces before first layer of hexagon
{
    cout<<" ";
}

答案 1 :(得分:3)

我不确定您的size变量的内容是什么,但看起来您的循环条件错误了:

for(int i=0;i>=size;i++)

可能应该是:

for(int i=0;i<size;i++)

其他循环也是如此。

答案 2 :(得分:1)

假设您的size是正数,它会根据您的情况运作。 在您的条件中将>条件更改为<

答案 3 :(得分:1)

在您的条件下,反转&gt;到&lt;

&LT;意味着自卑,你想做一个

for i = 0; if i < size; i++

你做

for i = 0 ; if i > size ; i ++ 

如果大小优于i(0),则循环将永远不会触发

答案 4 :(得分:1)

不是所有的&lt;和&gt;逆转吗?因为

(int k=0; k>size;k++)

对我毫无意义。

答案 5 :(得分:1)

C ++中的

for循环是循环,而不是直到循环。

C ++只有循环(的含义只要):

for (int i=0; i<10; ++i)
    ....


int i=0;   
while (i<10) {
    ....
    ++i;
}