a simple problem with ForLoop in C#

11,763

Solution 1

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.

Solution 2

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.

Solution 3

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.

Share:
11,763
Bohn
Author by

Bohn

Some Entry Level developer. .NET Rails

Updated on July 14, 2022

Comments

  • Bohn
    Bohn almost 2 years

    I want 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");
        }