看,说顺序

时间:2017-09-28 22:48:57

标签: c# .net

我正在尝试查看并说出我的代码到目前为止,只有当我将'realCounter'设置为2或更低并且不明白为什么时才能正常工作。谢谢你的帮助!这是我的主要内容:

        string number = "1";          
        string[] tempStore = new string[2];

        int realCounter = 0;

        while (realCounter < 2)
        {
            int counter = 1;
            for (int i = 0; i < number.Length; i++)
            {
                try
                {
                    if (number[i] == number[i + 1])
                    {
                        counter++;
                    }
                }
                catch
                {
                    tempStore[0] = number[i].ToString();
                    number = counter.ToString();
                    number = number + tempStore[0];
                }
            }
            realCounter++;
        }

        Console.WriteLine(number);

        Console.ReadLine();

我一直在使用realCounter&lt;的while循环来改变这一行。 2到realCounter&lt; 3,程序没有按预期执行

2 个答案:

答案 0 :(得分:0)

这是因为你专门检查以确保realCounter&lt; 2作为你的while循环的条件

答案 1 :(得分:0)

            try
            {
                if (number[i] == number[i + 1])
                {
                    counter++;
                }
            }
            catch
            {
                tempStore[0] = number[i].ToString();
                number = counter.ToString();
                number = number + tempStore[0];
            }

您只是在遇到异常时更新number变量。当number[i + 1]遇到IndexOutOfBounds异常时,您只会遇到异常。因此,您只是使用它遇到的最后一个序列更新number,而您将丢弃所有其余的序列。