простая проблема с ForLoop в C # - PullRequest
4 голосов
/ 28 октября 2010

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

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

Ответы [ 4 ]

7 голосов
/ 28 октября 2010

Да, поскольку у вас второе предложение (предложение «продолжайте, пока это правда») неправильно, попробуйте следующее:

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

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

6 голосов
/ 28 октября 2010

Похоже, ваше терминальное состояние L <= 1 - это то, что сбивает вас с толку.

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

3 голосов
/ 28 октября 2010

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

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, просто измените соответствующим образом.

0 голосов
/ 28 октября 2010

попробуйте это:

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

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

int L = 3
while( L > 0)
{
    MessageBox.Show("Your clever message);
    L--;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...