a simple problem with ForLoop in C#
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.
Comments
-
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"); }