2016-11-04 16 views
0

私はちょうどC#を学び始めています。私はforループの "-1"が意味するものは何ですか?次のC#コードで "-1"の意味は何ですか?

string[] fruit = { "Apples", "Oranges", "Grapes" }; 
for (int i = fruit.Length - 1; i >= 0; i--) 
{ 
    // Code Here 
    Console.WriteLine(fruit[i]); 
} 

私は配列に逆方向に行く方法を見つけ出すしようとしていたと私はそれを行うことができたが、私はちょうどのためのループ内でどのように機能するかを「-1」を知りたいです。それはなぜ必要なのですか?

+5

配列は0から始まりますが、lengthは1から始まるカウントであるため、配列の最後の要素を取得するにはlength-1が必要です。 –

+0

'fruit.Length - 1'。配列の最後の要素... –

+5

原子炉を操作していない場合は、「なぜこのような必要なのか」という多くの質問に対する簡単な答えは、「放置して見てください」です。 –

答えて

3

C#の配列は0でインデックス付けされており、要素[0]で始まることを意味します。したがって、最大のアクセス可能なインデックスは長さ-1です。

+0

ありがとう、ありがとう。 – Bustedspoke

1

配列の長さ - 1は、それを正規化することです。配列は0から開始しますが、明らかに数字の数は1から始まります。配列(またはコレクション、セマンティクス)の長さ-1は、コレクションの現在のインデックスにアクセスする方法になります。

+0

ありがとうございます。ほんとうにありがとう。 – Bustedspoke

+0

私は試してみましたが、私は15人未満の担当者がいると言います。 – Bustedspoke

0

配列は0からarray.length - 1までのインデックス付けを常に開始し、配列の長さは1 2 3 .....からarray.lengthになります。これはfruit [0] fruit [1] ....フルーツ[fruit.length -1]そしてそれが最後の要素です。あなたはfruit [fruit.length - 1] ......からfruit [0]に逆ループを開始しています。もしあなたがfruit [fruit.length]を入れると、あなたはindexOutOfBoundsExceptionを取得します。アプリのデバッグは、何が起きているかを確認する最も良い方法です。

+0

ありがとうテレサ – abelh2200

関連する問題