ローカル変数は初期値を入れる前に読むことができません。フィールド(メンバー変数)と違い、自動で 0 や null にはなりません。 出るコード int total; System.out.println(total); // 代入前に読んでいる エラーメッセージ error: variable total might not have been initialized 直し方 宣言と同時に初期値を入れます(int total = 0;)。