配列修羅道:Step01

配列修羅道-step01 learn

配列の合計を出せ

問題を見る(javadrillへ)


問題のポイント

配列の中身を全部足して、合計を出力する。
単純な処理に見えるが、ここで for文配列.length の感覚がズレてるやつは後で必ず詰む。
配列とループの“数え方”をここで身体に刻め。


まず、日本語で考えろ

  • 在庫数が格納された配列が渡される(int[] stocks)
  • 中身を1つずつ取り出して足していく
  • 合計用の変数を用意し、for文で加算する
  • 最後に合計値を出力する

コメントを書け

コードを書く前に、やることを日本語で分解してコメントにせよ。
それが“なんとなく”のコードを、“構造”に変える第一歩だ。

// 合計を入れる変数を用意する
// 配列を1つずつループで回す
// 各要素を合計に加える
// 合計を出力する

コメントに従ってコードを書け

ublic static void printStockSum(int[] stocks) {
    // 合計を入れる変数を用意する
    int sum = 0;

    // 配列を1つずつループで回す
    for (int i = 0; i < stocks.length; i++) {
        // 各要素を合計に加える
        sum += stocks[i];
    }

    // 合計を出力する
    System.out.println("合計在庫数: " + sum);
}

コードの解説

int sum = 0;
→ 最初に「箱」を用意する。配列の要素を全部入れていくための変数。

for (int i = 0; i < stocks.length; i++)
→ 配列の全要素をループ。
i = 0 始まり、i < length 終わり は、配列ループの基本形。

sum += stocks[i];
→ 取り出した要素を合計に足す。
sum = sum + stocks[i]; と同じ意味。

System.out.println(...)
→ 合計の出力。文字列と数値の連結は + で書ける。

つまづきやすいポイント

なぜ i = 0 で始めて、i < stocks.length で止めるのか?

Javaの配列は 0 から始まる。たとえば:

インデックス: 0 1 2 3 4
値: 10 20 30 40 50

  • 最初の要素:index 0
  • 最後の要素:index 4(= length – 1)

だから i <= stocks.length にしてしまうと、index 5 を参照してしまい、配列外参照(ArrayIndexOutOfBoundsException が起きる。

ループは < stocks.length で止める。これがセオリー。

teshのひとこと

「配列って、for文で回すやつっしょ」
…って言ってるやつに限って、i = 1 から書き始めて、<= で調整してる。
そのズレを放置してる限り、おまえのコードは“構造”を持たない。

プログラミングってのは、「世界の数え方」を書く行為だ。
0から始めて、未満で終わる。
それを疑わずに書けるようになるまで、ただひたすら打ち続けろ。

Just keep typing, baby.
配列の構造は、おまえの数え方に現れる。


👉 配列修羅道:全体のステップ構成はこちら

他のステップや学習順序を確認したい場合は、
[配列修羅道:全体のステップ構成] をチェックしてくれ。