Вопрос с приращением значений в C # - PullRequest
0 голосов
/ 10 августа 2011

В настоящее время я пытаюсь получить число, которое увеличивается на единицу при каждом запуске, я использую цикл while, поэтому теоретически каждый раз, когда цикл запускается в приведенном ниже коде, int i должен возвращать 1,2, 3,4 и т. Д. Хотя вместо этого он возвращает 1,1,1,1,1. Просто не могу обойтись этим.

public static void getresponse(ref int i)
{
    i++;
    System.Console.WriteLine(i);
}

Ответы [ 4 ]

3 голосов
/ 10 августа 2011

Вы переделываете i и устанавливаете его в 0 при каждом запуске цикла.

Переместите int i = 0 вне цикла while.

    int i = 0;
    while (true)
    {
        getresponse(ref i);
    }
1 голос
/ 10 августа 2011

Объявите меня вне вашего цикла while. Каждый раз устанавливается на 0.

static void Main(string[] args)
{
    int i = 0;
    while (true)
    {
        getresponse(ref i);
    }
}

public static void getresponse(ref int i)
{
  i++;
  System.Console.WriteLine(i);
}
0 голосов
/ 10 августа 2011

Поставьте свой счетчик за пределы петли.

static void Main(string[] args)
{
    int i = 0;
    while (true)
    {
        getresponse(ref i);
    }
}

public static void getresponse(ref int i)
{
   i++;
   System.Console.WriteLine(i);

}
0 голосов
/ 10 августа 2011

Вы замечаете, что вы сбрасываете i в 0 на каждой итерации?

просто объявите меня вне блока while, и оно будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...