1. n = 10 のとき 55
  2. n = 1 のとき 1
  3. n = 100 のとき 5050
  4. n = 0 のとき 0 (ループに入らない)
  5. n = 5 のとき 15
コース一覧
Java入門:基礎文法編
1 から N までの合計

Java入門:基礎文法編

変数、制御構文、メソッド、クラス、継承、インターフェースなど Java とオブジェクト指向の基礎を、コードを書きながら学べる無料コースです。プログラミング初学者や、業務システム開発で Java を扱う必要がある社会人を対象としています。約 17 時間 (1 日 30 分 × 34 日) で 69 レッスンを修了でき、修了後は Spring などのフレームワーク学習や Java 認定試験への準備が無理なく進められます。

1
Hello, Java
01. はじめての Java プログラム5分
02. 複数行の出力5分
03. 変数を使った自己紹介5分
04. コメントを書く5分
05. 第 1 章まとめクイズ5分
2
変数と演算
01. 変数を宣言する5分
02. データ型の使い分け5分
03. 変数とデータ型クイズ5分
04. 四則演算と剰余5分
05. 税込価格を計算する5分
06. インクリメントとデクリメント5分
07. 比較演算子5分
08. 論理演算子5分
09. 演算子の優先順位5分
10. 文字列の連結5分
11. 型変換 (キャスト)5分
12. 第 2 章 まとめクイズ5分
3
条件分岐
01. if 文の基本5分
02. if-else 文5分
03. else if で複数分岐5分
04. 成績判定プログラム12分
05. うるう年を判定する5分
06. switch 文5分
07. 三項演算子5分
08. じゃんけんの勝敗判定15分
09. FizzBuzz の判定部分5分
10. 第 3 章 まとめクイズ5分
4
繰り返し
01. for 文の基本5分
02. 1 から N までの合計5分
03. 九九の段を作る5分
04. while 文5分
05. カウントダウン5分
06. do-while 文5分
07. 二重ループ5分
08. break と continue5分
09. FizzBuzz 完成5分
10. 繰り返しクイズ5分
11. 第 4 章 まとめクイズ5分
5
メソッド
01. メソッドを定義する5分
02. 引数を受け取るメソッド5分
03. 戻り値を返す5分
04. 複数の引数を取るメソッド5分
05. メソッドのオーバーロード5分
06. メソッドクイズ5分
07. BMI を計算するメソッド5分
08. 第 5 章 まとめクイズ5分
6
配列
01. 配列の基本5分
02. 配列の要素にアクセス5分
03. 配列を for で走査5分
04. Javaで配列の合計・平均を求める方法(forループ)5分
05. 配列の平均5分
06. 配列の最大値5分
07. 配列の線形探索12分
08. 拡張 for ループ5分
09. 配列クイズ5分
10. 第 6 章 まとめクイズ5分
7
クラスとオブジェクト
01. クラスを定義する5分
02. クラスにフィールドを持たせる12分
03. クラスにメソッドを定義する5分
04. インスタンスを作る5分
05. コンストラクタ5分
06. this キーワード5分
07. カプセル化 (private と getter)12分
08. Person クラスを作る5分
09. Product クラスで税込価格15分
10. 銀行口座クラス15分
11. toString のオーバーライド5分
12. クラスとオブジェクト クイズ5分
13. Java 入門 最終クイズ5分

1 から N までの合計

毎回 0 に戻ってしまう

繰り返しの結果を 1 つの値にまとめたいときは、途中経過を貯めておく変数を用意します。この変数を置く場所を 1 行間違えると、答えは必ず最後の 1 周ぶんだけになります。

1 から 20 までのうち、4 で割り切れる数が何個あるかを数える例で見てみます。

Java

int count = 0; for (int i = 1; i <= 20; i++) { if (i % 4 == 0) { count++; } } // count は 5

int count = 0; が for の 外 にあることが要です。これを中括弧の内側に書くと、こうなります。

Java

for (int i = 1; i <= 20; i++) { int count = 0; // 毎周ここで作り直される if (i % 4 == 0) { count++; } } // ここでは count が見えない

1 周ごとに宣言し直されて 0 に戻るので、count は多くても 1 にしかなりません。しかも中括弧の中で宣言した変数はループを抜けると消えるため、最後に読むこともできません。

貯める変数は、ループの外で用意し、ループの中で書き換え、ループを抜けてから読みます。この 3 つが別々の行にある形が、繰り返しで集計するときの基本の形です。

周ii % 4周の終わりの count
3330
4401
5511
8802

count は毎周ゼロから作り直されるのではなく、前の周の値の上に積み上がっています。count++ は count = count + 1 の短い書き方で、右側の count が前の周までの値です。1 以外を足したいときは次のように書きます。

Java

count += 3; // count = count + 3 と同じ

1 周も回らないときは、初期値がそのまま残る

for は、最初に条件を確かめてから本体に入ります。条件が最初から成立しなければ、本体は 1 度も動きません。

そのとき貯める変数は用意したときの値のまま残り、それがそのまま答えになります。だから初期値は「まだ何も起きていないときの答え」として正しい値を選びます。個数を数えるなら 0、掛け合わせていくなら 1 です。

解説

大きな数を扱うときは int の上限に注意してください。約 21 億を超えると符号が反転してマイナスになります。桁が伸びそうなら long を使います。

やってみよう

sumOneToN(int n) を完成させて、1 + 2 + ... + n の合計を返してください。

  1. for の外に、合計を貯める変数を用意する
  2. ループの中で、その変数に i を足し込む
  3. ループを抜けてから、その変数を返す
  4. 実行して 10 1 100 0 5 の 5 件を通す

n 自身も足す必要があるので、条件を i < n にすると答えが n だけ足りません。sumOneToN(10) が 55 ではなく 45 になったら、まずそこを疑ってください。n が 0 のケースは、初期値を正しく選んでいれば何も足さなくても通ります。

要件

  1. クラス名は Solution、メソッド名は sumOneToN、引数は int n ひとつにすること
  2. メソッドの戻り値の型は int で、1 + 2 + ... + n の合計を返すこと
  3. n が 0 のときは 0 を返すこと (ループが 1 周も回らないケースに対応)

入出力例

sumOneToN(10) → 55 sumOneToN(1) → 1 sumOneToN(100) → 5050 sumOneToN(0) → 0 sumOneToN(5) → 15

ヒント

まず `int sum = 0;` で合計用の変数を初期化しましょう。初期化しないとコンパイルエラーになります

`for (int i = 1; i <= n; i++)` のように、継続条件は `i <= n` にします。`i < n` だと最後の `n` が足されず答えが 1 つズレます

ループの中身は `sum += i;` または `sum = sum + i;` のどちらでも OK。ループの後ろで `return sum;` を忘れずに書きましょう

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

関連レッスン

  • 九九の段を作る

    `for` ループの応用として、引数 `n` の段の九九を空白区切りの文字列で組み立てる方法を学びます。

  • while 文

    while 文の構文と使いどころを学びながら、整数の桁数を数えるアルゴリズムを実装してみよう。

  • カウントダウン

    Java の `while` 文を使って、n から 1 までを空白区切りでつないだ文字列を作るカウントダウン処理を学びます。

  • do-while 文

    `do-while` 文を使って「最低 1 回は実行したい繰り返し」を書いてみよう。条件チェックのタイミングが `while` とどう違うのかを身体に染み込ませる回。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 変数データに名前をつけて参照する仕組み
  • ループ繰り返し処理。矢印で戻すか専用記号で示す
  • クラスデータと振る舞いを束ねる単位
  • メソッドクラスに属する関数
  • 引数位置引数=順番で渡す。
  • 戻り値呼び出し元への返答を表す点線矢印
main.java
学習モード
エディタを読み込んでいます

メモ

1 から N までの合計

⌘S で保存