2016-08-12 48 views
-4

我已經設置了一個任務來創建一個隨機生成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.IndexOutOfRangeException」的未處理的異常發生在SummerWorkTask2.exe 其他信息:索引陣列的邊界之外。視覺工作室然後高亮第n行[1] = rnd.Next91,13);

如果它是任何使用,我編碼在Visual Studio 2012

+3

也許你擔心縮進,因爲你在想如何縮進在Python中工作?在C#中,縮進不會影響代碼的功能 - 編譯時或運行時。縮進只是爲了便於閱讀。 *無論您遇到什麼問題(您沒有解釋過)都與縮進無關。* – mmcrae

+1

@mmcrae VS自動壓頭可以是合成煤礦中的金絲雀。 –

+1

如果在Visual Studio中點擊「ctrl + k + d」,它應該重新對齊/重新縮進文本。 –

回答

0

這是的Visual Studio。在C#中有沒有縮進。 並將i<11更改爲i<10以防止IndexOutOfRange異常。

+0

SummerWorkTask2.exe中發生未處理的「System.IndexOutOfRangeException」類型的異常 其他信息:索引超出了數組的範圍。 –

+0

我編輯了我的帖子 –

1

我偶然發現了這篇舊帖子,我無法相信爲什麼每個人都在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++) { ... } 

它將從0只要i比保持較低11運行。其實從010。這是一次迭代,超過了數組的大小,這就是爲什麼最後一次迭代(i==10)會崩潰的原因 - 無論您刪除和重寫代碼行的頻率如何,或者它的縮進程度如何,都無關緊要。

loop i  0 1 2 3 4 5 6 7 8 9 10 
array n = [?] [?] [?] [?] [?] [?] [?] [?] [?] [?]  <- BAM!