2010-10-28 3 views
4

Я хочу, чтобы он запускался три раза, но на самом деле он никогда не запускает цикл и выходит. В VB 6.0 я мог бы сделать это с аналогичной структурой, но как я могу добиться того же самого с C# for loop? Я хочу, чтобы отсчитывать, но это не всегда так, иногда я передаю «1», а иногда и «-1» для шага, когда прошло с «-1» не работаетпростая проблема с ForLoop в C#

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

ответ

7

Да потому, что у вас есть второе предложение (далее «будет держать в то время как это верно» оговорка) неправильный путь вокруг, попробуйте это:

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

Теперь он говорит: «начать с 3», «декремент» (-) в то время как L больше или равным 1.

6

Это похоже, что ваше состояние терминала L <= 1 - это то, что вас отбрасывает.

Возможно, вы решили это сделать и сказать L >= 1. В противном случае, когда L инициализируется до 3, а затем вычисляется терминал, он немедленно возвращает false, говоря, что L больше 1 и, следовательно, завершает ваш цикл.

3

для цикла может быть записан как:

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

Вашего L всегда будет больше, чем 1, поэтому цикл никогда не будет выполнен. Правильный путь будет либо:

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

или

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

, если вы хотите начать с 1, просто изменить соответствующим образом.

-1

попробовать это:

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

это должно отсчитывать для вас, я исправил его. Они верны, это был бесконечный цикл. Вот еще один способ сделать это, что может сделать больше смысла в мозге.

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

Но это не закончится! – codekaizen

+2

Это будет обратный отсчет. Обратный отсчет в течение очень долгого времени. –

+0

это покажет бесконечные сообщения. – Femaref

Смежные вопросы