一个不应该出现的缩进错误
本文关键字:缩进 错误 不应该 一个 | 更新日期: 2023-09-27 18:02:23
我的任务是创造一款随机生成10个随机数的游戏,将它们快速连续地呈现给用户,然后用户必须回到开始并记住下一个数字是更高还是更低。
我创建了一个for循环来遍历一个数字数组,以便为十个变量中的每一个快速分配一个随机数,但是在这个for循环中存在缩进错误。从以前的编码经验来看,我无法判断是否存在缩进错误。有人能帮帮我,告诉我发生了什么事吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SummerWorkTask2
{
class Program
{
static void Main(string[] args)
{
Random rnd = new Random();
int i, a, b;
int [] n = new int[10];
for (i = 0; i < 11; i++)
{
n[i] = rnd.Next(1, 13);
}
a = rnd.Next(1,11);
b= 0;
while (b < a)
{
Console.WriteLine("This number is " + n[b]);
Console.ReadLine();
Console.Clear();
b++
}
}
}
}
代码n[i] = rnd.Next(1, 13);
行显然没有缩进正确,甚至本网站也能识别它,但我已经尝试了所有方法,所有数量的空格和显然四个空格都不起作用。
得到的错误是
类型为"System"的未处理异常。在SummerWorkTask2.exe中发生IndexOutOfRangeException附加信息:索引超出了数组的边界。
Visual studio然后突出显示行n[1] = rnd。
Next91 13);如果有任何用处,我在Visual Studio 2012中编码。
我很偶然地发现了这篇旧文章,我无法相信为什么每个人都在谈论c#中的缩进,而不是阅读代码并向Scott展示他所遇到的问题。
好的,在这里:
int [] n = new int[10];
for (i = 0; i < 11; i++)
{ ... }
创建一个大小为10
的数组,如下所示…
int [] n = new int[10];
…创建一个数组与10
"槽"-从索引0
到9
。我把每个值都写为?
,因为我不想让任何人与其他数字混淆:
index 0 1 2 3 4 5 6 7 8 9
array n = [?] [?] [?] [?] [?] [?] [?] [?] [?] [?]
所以你看到有10
插槽,但是因为它是从零开始的,所以没有索引10
。
for (i = 0; i < 11; i++) { ... }
只要i
低于11
,它将从0
运行。实际上是从0
到10
。这比数组的大小多了一次迭代,这就是为什么最后一次迭代(当i==10
)会崩溃——无论你删除和重写代码行多少次,也不管它缩进多深。
loop i 0 1 2 3 4 5 6 7 8 9 10
array n = [?] [?] [?] [?] [?] [?] [?] [?] [?] [?] <- BAM!
这是来自Visual Studio。c#中没有缩进。并将i<11
更改为i<10
以防止indexoutorange Exception