我参加了一个c#课程,它给了我一些我复制和粘贴的代码,还有一些我自己做的。 无论如何,我不明白这个for()循环为什么我们要从int i = target.Length属性中减去1?
static string reverseString(string target)
{
String result = "";
// walk the target string backwards
for (int i = target.Length - 1; i >= 0; i--)
{
// add this letter to the result
result += target[i];
}
// return the result to the calling code
return result;
}
答案 0 :(得分:1)
举个例子。
string target = "ABC";
// target can be thought of as an array of characters
// target[0] holds 'A'
// target[1] holds 'B'
// target[2] holds 'C'
int length = target.Length;
// length would be 3 because Length is the count of the chars
// but if you were to try and get the value of target[3] you would get an error
// because target ends at [2] (index 2)
所以你需要从.Length - 1开始,然后向后工作到0(不是1)。
答案 1 :(得分:0)
它从Length - 1开始,因为这是最后一个允许的索引。请注意,它还包括索引0(因为"> = 0"),这是第一个允许的索引。增量为-1,因此我们考虑减少索引的值而不是增加索引的值。