一个不应该出现的缩进错误

本文关键字:缩进 错误 不应该 一个 | 更新日期: 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"槽"-从索引09。我把每个值都写为?,因为我不想让任何人与其他数字混淆:

index         0   1   2   3   4   5   6   7   8   9
array    n = [?] [?] [?] [?] [?] [?] [?] [?] [?] [?]

所以你看到有10插槽,但是因为它是从零开始的,所以没有索引10

现在,在下一行中,定义了这个循环:
for (i = 0; i < 11; i++) { ... }

只要i低于11,它将从0运行。实际上是从010。这比数组的大小多了一次迭代,这就是为什么最后一次迭代(当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