我学习控制流程并尝试编写代码以获取5个不同的数字,然后存储到数组中,排序和打印。我得到例外说数组超出范围,但我不明白为什么,因为我将5个对象存储到[4]数组中。
为什么我得到这个例外的任何提示?
public static void Three()
{
var numbers = new int[4];
var i = 0;
while (i <= 4)
{
Console.WriteLine("enter a number: ");
var input = Convert.ToInt32(Console.ReadLine());
if (Array.IndexOf(numbers, input) != -1)
{
Console.WriteLine("try again");
}
else
{
numbers[i] = input;
i++;
}
}
Array.Sort(numbers);
foreach (var item in numbers)
{
Console.WriteLine(Convert.ToString(item));
}
}
答案 0 :(得分:1)
但我无法理解为什么,因为我将5个对象存储到[4]数组中。
因为[4]
数组在索引0
,1
,2
和3
处保留4个对象。如果要保存5个对象,则需要int[5]
并使用索引0-4。这就是为什么您通常会看到i < 4
而不是i <= 4
。