2017-02-20 14 views
0

私はここにいるので、私を助けてください。コードが実行されていますが、その後、Compailerは何も印刷せず、IndexOutOfRangeExceptionのエラーを出します。エラーが発生しています。IndexOutOfRangeException

class Program 
    { 
     static void Main(string[] args) 
     { 
      string brd = board(); 
      string[] sub = subjects(); 
      Console.WriteLine(brd); 
      Console.WriteLine(sub); 
      Console.ReadLine(); 
     } 
     public static string board() 
     { 
      Console.WriteLine("Please Enter Board Name "); 
      string Board = Console.ReadLine(); 
      return Board; 
     } 
     public static string[] subjects() 
     { 
      Console.WriteLine("Please Enter How many Subject Do you Want to input"); 
      int limit = System.Convert.ToInt32(Console.ReadLine()); 
      string[] Subjects = new string[limit]; 
      string[] index = new string[limit]; 
      for (limit = 1; limit <= index.Length; limit++) 
      { 
       Console.WriteLine("Please Enter Subject Name " + limit); 
       Subjects[limit] = Console.ReadLine(); 
      } 
      return Subjects; 
     } 
      } 
+0

インデックス0でnet startで配列あなたはNETについてのチュートリアルを読めば、あなたが(制限= 1リミット++;リミット<= index.Length)のためにどこでも – Steve

+0

'この情報を見つけることができます('は 'でなければなりませんlimit = 0; limit Mairaj

答えて

2

変更この:これに

for (limit = 1; limit <= index.Length; limit++) 

は:インデックスは(1からではない)0から始まるので

for (limit = 1; limit < index.Length; limit++) // <= to < 

インデックスは常にLengthよりも低くなっています。あなたの場合、それはLengthと等しくなります。

また、2番目の要素から開始します。最初から起動するには:

for (limit = 0; limit < index.Length; limit++) //limit = 0 
+0

おそらく、0ではなく1から始めたいと思うでしょう。 – wkl

+0

@wkl、thanks、edited –

0

配列は0をインデックス化しているので、アクセスの最初の項目は0

あなたのforループになりますと、したがって、0で開始する必要があります。

コード内のforループは次のようになります。

for (limit = 0; limit < index.Length; limit++) 
関連する問題