【发布时间】:2017-09-08 12:22:12
【问题描述】:
所以我尝试使用谷歌搜索,但找不到任何可以回答我问题的信息。
基本上我有一个包含 {1,2,3,4,5,6,7,8,9,10} 的数组。我有一个 for 循环和一个 foreach 循环,据我所知,它们做同样的事情(只打印可被 2 整除的数字)。 for 循环工作正常 - 它打印 2、4、6、8 和 10。foreach 循环似乎也打印了正确的整数,但由于某种原因它抛出了 IndexOutOfRangeExeption。为什么 for 循环工作完全没有错误,但 foreach 循环打印正确的整数,但仍然抛出错误?
代码如下:
int[] tenNums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Console.WriteLine(tenNums.Length);
for (int i = 0; i < tenNums.Length; i++)
{
if (tenNums[i] % 2 == 0)
{
Console.WriteLine(tenNums[i]);
}
}
foreach (int i in tenNums)
{
if (tenNums[i] % 2 == 0) // <== Error happens on this line
{
Console.WriteLine(tenNums[i]);
}
}
Console.ReadKey();
【问题讨论】:
-
@BalagurunathanMarimuthu 当我这样做时,for 循环不会打印数字 10?
-
@BalagurunathanMarimuthu:OP 为什么要忽略最后一个值?