我正在尝试查看并说出我的代码到目前为止,只有当我将'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,程序没有按预期执行
答案 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
,而您将丢弃所有其余的序列。