开发者

a simple problem with ForLoop in C#

I wa开发者_如何学Cnt it to run three times but it actually never runs the loop and gets out. In VB 6.0 I could do that with a similar structure but how can I achieve the same thing with C# for loop? I want to to count down but it is not ALWAYS the case, sometimes I am passing "1" and sometimes "-1" for the step , when passed with "-1" it does not work

    for (int L = 3; L <= 1; L += -1)
    {
        MessageBox.Show("dfsdff");
    }


Yes because you have the second clause (the "keep going whilst this is true" clause) the wrong way around, try this:

 for (int L = 3; L >= 1; L--)
    {
        MessageBox.Show("dfsdff");
    }

Now it says "start at 3", "decrement" (--) whilst L is bigger than or equal to 1.


It looks like your terminal condition of L <= 1 is what is throwing you off.

You probably meant to reverse that and say L >= 1. Otherwise when L is initialized to 3, and then the terminal is evaluated it would immediately return false saying that L is greater than 1, and therefore terminate your loop.


the for loop can be written out as:

for(variable L = 3; as long as L satisfies condition L <= 1; increment L by -1)

Your L will always be greater than 1, so the loop never gets executed. The right way would be either:

for(int L = 0; L <= 2; L++)

or

for(int L = 2; L >= 0; L--)

if you want to start with 1, just modify accordingly.


try this:

for (int L = 3; L >= 1; L--)
    {
        MessageBox.Show("dfsdff");
    }

That should count down for you, I've corrected it. They are correct, it was an infinite loop. Here is another way to do it, that might make more brain sense.

int L = 3
while( L > 0)
{
    MessageBox.Show("Your clever message);
    L--;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜