简单循环,不是那么简单错误

时间:2013-08-22 22:16:57

标签: c# for-loop

我收到一个让我发疯的错误...我发现这段代码有什么问题,任何人都会非常友好地给我一些帮助吗?


using System;

class Program
{
    static void Main(string[] args)
    {   
        for(int i = args[0].Length; i >= 1; i--){
            Console.WriteLine(args[0].Substring(i, 1));
        }
    }
}

运行示例应该是:program.exe 6735

输出结果如下:

5

3

7

6

到目前为止,我唯一得到的是:

  

未处理的异常:System.ArgumentOutOfRangeException:startIndex +   长度> this.length参数名称:长度at   System.String.Substring(Int32 startIndex,Int32 length)[0x00000] in   :0:在Program.Main(System.String [] args)[0x00000] in:0

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

for(int i = args[0].Length; i >= 1; i--)

应该是

for(int i = args[0].Length - 1; i >= 0; i--)

答案 1 :(得分:1)

args[0].Length是字符串的长度。由于字符串是0索引的,因此长度是字符串中最后一个字符之后的一个索引。

如果你想在字符串中反向循环,你应该在Length - 1开始你的迭代器。