質問: for文の最後のSystem.out.printlnの表示に関してなんですけどあるfor文を作成したところ最後の答えが System.out.println(stn[i]); っていう形になりこれが答えなのですが、最後の(stn[i]);はどういう意味で[]でiを囲わなきゃいけないのでしょうか?ちなみにメソッドにStringの配分の要素を処理にいれていますそれだからでしょうか?
回答: ~~優しいのでスーパー推測します~~ (こういうときは自分のコードを書くのが普通です) ``` String[] stn = ["りんご", "ぶどう", "ばなな"]; for(int i = 0; i< 3; i++;) { System.out.println(stn[i]); } ``` なんかこんな感じなんじゃないですかね(適当) 質問は > > 最後の(stn[i]);はどういう意味で[]でiを囲わなきゃいけないのでしょうか? > > > なので、スーパー推測した適当コードで解説すると、 まず質問者さんは「インデックス」っていうものが何かよくわからないのではないですか? 配列にも順番があります。 ですが変わったことに、配列の順番は「0」から始まります。不思議ですね。 私が書いた ``` String[] stn = ["りんご", "ぶどう", "ばなな"]; ``` この配列だと、 ``` 0番目:りんご 1番目:ぶどう 2番目:ばなな ``` です。 配列についてよくわからない質問者さんのために、まずはfor文を使わずに配列を操作してみることを強くおすすめします。 では試しに ``` String[] stn = ["りんご", "ぶどう", "ばなな"]; System.out.println(stn[0]); ``` と書いてみましょう。 あらふしぎ、「りんご」が取れたのではないでしょうか。 **配列名[何番目か]** と書くとなんと不思議、配列から値を取り出すことができます。 では **i** についてです。 for文をやってるのでさすがにわかるかと思いますが、 この i には数字が入ります。 ↓だと ``` String[] stn = ["りんご", "ぶどう", "ばなな"]; for(int i = 0; i< 3; i++;) { System.out.println(stn[i]); } ``` 1回目 int i = 0; としているので、「i = 0」 2回目 i に 1足すので 「i = 1」 3回目 i に 1足すので 「i = 2」 となりますね。 ではもう一度、先程の配列の値の取り出し方をみてみましょう。 ``` String[] stn = ["りんご", "ぶどう", "ばなな"]; System.out.println(stn[0]); ``` 0 といれればりんごがとれます。 じゃあ 1といれればぶどうが取れるし、 2ならばななが取れます。 簡単ですね。 もうわかりましたよね。 i を使って配列から取りたい値を取り出しただけです。