【Kotlin】レッスン2-5:for文の使い方|繰り返し処理の基本と応用を学ぼう

一つ前のページではスマートキャストについて学習しました。
今回は for文による繰り返し処理 について見ていきましょう。
Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子を理解しよう
・Lesson2-2:if文による分岐処理を理解しよう
・Lesson2-3:when文による分岐処理を理解しよう
・Lesson2-4:スマートキャストを理解しよう
・Lesson2-5:for文による繰り返し処理を理解しよう ◁今回はココ
・Lesson2-6:while文による繰り返し処理を理解しよう
・Lesson2-7:繰り返しを制御しよう
・Lesson2-8:エラーメッセージを読めるようになろう
・Lesson2-9:例外処理を理解しよう
・確認問題2-☆1:ハイアンドローゲームを作ろう
・確認問題2-☆2:数字当てゲームを作ろう
・確認問題2-☆3:簡単なじゃんけんゲームを作ろう
Lesson3:関数編
Lesson4:コレクション編
Lesson5:オブジェクト指向編
for文の基本|繰り返し処理を直感的に記述する方法
for文は、特定の範囲やコレクションの要素を順に処理するための繰り返し構文(ループ)です。
決まった回数や、配列・リストの全要素に対して同じ処理をしたいときに使います。
具体的な意味や使い方を見ていきましょう。

for文による繰り返し処理とは?|概要と基本構文
for文は、指定された範囲内で同じ処理を何度も繰り返すための構文です。
たとえば数値の範囲(例: 1..10
)を使って、その範囲内で計算を繰り返す場合などに使用できます。
for文の基本構文は以下のようになります。
for (変数 in 範囲) { // 繰り返したい処理 }
- 変数: 繰り返しごとに範囲内の値が代入される変数。
- in演算子: 特定の値が範囲に含まれているかどうかを判定する。
- 範囲:
1..10
のように、開始値と終了値を指定する範囲演算子を使います。
for文の使用コード例|step・downToの活用法も紹介
for文を使った繰り返し処理の例を3つ紹介します。
範囲を使った繰り返し|最も基本的な使い方
次の例では1から5までの数値を順番に出力します。
for (i in 1..5) { // 変数iの値が1から5の範囲内で println(i) // iの値を出力 }
このコードを実行すると、以下のような順番で動作します。
① 変数iに範囲の中の最初の数値1を代入
② println(i)を実行。iは1なので1と出力
③ 1周目の繰り返しが終了し、2周目へ移行
④ 変数iに範囲の中の次の数値2を代入
⑤ println(i)を実行。iは2なので2と出力
⑥ 2周目の繰り返しが終了し、3周目へ移行
・・・
⑭ println(i)を実行。iは5なので5と出力
⑮ 5周目の繰り返しが終了
⑯ 全ての繰り返しが終了したのでfor文の次の命令に移行
すなわち、このコードを実行すると以下のように出力されます。
1 2 3 4 5
ステップ指定|stepキーワードの使い方
範囲内で繰り返す際に、stepキーワード を用いて値を飛ばして実行することも可能です。
たとえば次の例では2ずつ増加させています。
for (i in 1..10 step 2) { // 変数iの値が1から10の範囲内で、2ずつ増加させて println(i) // iの値を出力 }
このコードを実行すると以下のように実行されます。
1 3 5 7 9
降順の繰り返し|downToキーワードの使い方
数値を降順に繰り返したい場合は downTo
キーワード を使用します。
for (i in 5 downTo 1) { // 変数iの値が1から5の範囲内で、逆順に1ずつ減少させて println(i) // iの値を出力 }
このコードを実行すると以下のように実行されます。
5 4 3 2 1
for文の活用テクニック|条件付き繰り返し処理とネスト構造
for文を用いた繰り返し処理の応用例を2つ紹介します。
条件付きの繰り返し処理
for文の中で条件分岐を加えることで、特定の値に対してのみ処理を行うことができます。
for (i in 1..10) { // 変数iの値が1から10の範囲内で if (i % 2 == 0) { // もしiが偶数なら println("$i は偶数です") } }
このコードを実行すると以下のように実行されます。
2 は偶数です 4 は偶数です 6 は偶数です 8 は偶数です 10 は偶数です
ネストされた繰り返し処理
for文を入れ子にすることで多次元的な処理が可能です。
次の例では1から3までの繰り返しを2回ネストしています。
for (i in 1..3) { // 変数iの値が1から3の範囲内で for (j in 1..3) { // 変数jの値が1から3の範囲内で println("i: $i, j: $j") } }
このコードを実行すると以下のように実行されます。
i: 1, j: 1 i: 1, j: 2 i: 1, j: 3 i: 2, j: 1 i: 2, j: 2 i: 2, j: 3 i: 3, j: 1 i: 3, j: 2 i: 3, j: 3
まとめ|繰り返し処理をマスターしよう
for文は、範囲内の各要素を簡潔に扱うことができ、プログラムの繰り返し処理を直感的に記述できる強力な構文です。
in
やdownTo
、step
などを組み合わせることで、柔軟にループの回数や順序を制御できます。
まずは基本の使い方をしっかりマスターし、実際に手を動かしてみましょう。
練習問題|for文で繰り返し処理と条件分岐を実装しよう

数値を範囲で指定して繰り返し処理を行い、それに応じた出力を表示するプログラムを作成しましょう。
さらにif文やwhen文を組み合わせて条件に応じたメッセージを表示する方法を学びます。
この問題の要件
以下の要件に従ってコードを完成させてください。
- 数値1から5までを繰り返し処理して、それぞれの数値を出力すること。
- 数値1から10までを繰り返し処理して、偶数のみを出力すること。
- 数値1から5までを繰り返し処理して、以下の条件に応じてメッセージを出力すること:
- 数値が1のとき、「一番最初の数です」と表示すること。
- 数値が5のとき、「一番最後の数です」と表示すること。
- その他の数値のとき、「その他の数です」と表示すること。
ただし、以下のような実行結果となること。
1から5までの数を表示します。 現在の値: 1 現在の値: 2 現在の値: 3 現在の値: 4 現在の値: 5 偶数のみを表示します。 2 は偶数です 4 は偶数です 6 は偶数です 8 は偶数です 10 は偶数です 数値に応じたメッセージを表示します。 1: 一番最初の数です 2: その他の数です 3: その他の数です 4: その他の数です 5: 一番最後の数です
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:main関数の定義
□ 「1から5までの数を表示します。」と出力
□ forループを1から5まで繰り返すように設定
□ □ 現在のループの値を「現在の値: $i」と出力
□ 「偶数のみを表示します。」と出力
□ forループを1から10まで繰り返すように設定
□ □ if文にて現在の値が偶数であるか判定
□ □ □ 真の場合、「$i は偶数です」と出力
□ 「数値に応じたメッセージを表示します。」と出力
□ forループを1から5まで繰り返すように設定
□ □ when文を用いて現在の値を判定
□ □ □ 値が1の場合、「$i: 一番最初の数です」と出力
□ □ □ 値が5の場合、「$i: 一番最後の数です」と出力
□ □ □ それ以外の場合、「$i: その他の数です」と出力
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
fun main() { // for文を使用して繰り返し処理を行う例 println("1から5までの数を表示します。") /* 【穴埋め問題1】 ここに1から5まで繰り返し処理を行い、その値を出力するコードを書いてください。 */ println("偶数のみを表示します。") /* 【穴埋め問題2】 ここに1から10まで繰り返し処理を行い、偶数のみを表示するコードを書いてください。 */ println("数値に応じたメッセージを表示します。") /* 【穴埋め問題3】 ここに1から5まで繰り返し処理を行い、when文を使って数値に応じたメッセージを出力するコードを書いてください。 */ }
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
この問題の解答と解説
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
fun main() { // for文を使用して繰り返し処理を行う例 println("1から5までの数を表示します。") // 基本的なfor文の使用例 for (i in 1..5) { println("現在の値: $i") // iの値を出力 } println("偶数のみを表示します。") // if文を組み合わせて偶数のみを表示 for (i in 1..10) { if (i % 2 == 0) { println("$i は偶数です") } } println("数値に応じたメッセージを表示します。") // when文を組み合わせた例 for (i in 1..5) { when (i) { 1 -> println("$i: 一番最初の数です") 5 -> println("$i: 一番最後の数です") else -> println("$i: その他の数です") } } }
- 正解コードの解説
-
コードをブロックごとに分割してコードをブロックごとに分けて解説します。
メイン関数の開始
fun main() { println("1から5までの数値を表示します。") }
fun main()
: Kotlinプログラムのエントリーポイントとなる関数です。println
: 標準出力にメッセージを表示します。ここではプログラムの開始を示すメッセージを表示しています。
基本的なfor文の使用
for (i in 1..5) { println("現在の値: $i") }
for (i in 1..5)
: 1から5までの範囲(1..5
)を指定して繰り返し処理を実行します。i
: 繰り返しのたびに範囲内の値が順番に代入される変数です。println("現在の値: $i")
: 変数i
に現在の値を埋め込み、表示します。
if文を組み合わせた例
for (i in 1..10) { if (i % 2 == 0) { println("$i は偶数です") } }
if (i % 2 == 0)
: 変数i
が偶数(2で割った余りが0)であるかを判定します。- 偶数であれば
println("$i は偶数です")
でメッセージを表示します。
when文を組み合わせた例
for (i in 1..5) { when (i) { 1 -> println("$i: 一番最初の数です") 5 -> println("$i: 一番最後の数です") else -> println("$i: その他の数です") } }
else -> println("$i: その他の数です")
: どの条件にも該当しない場合に表示されるメッセージです。when
: 複数の条件を簡潔に記述するための分岐構文です。1 -> println("$i: 一番最初の数です")
:i
が1のとき、特定のメッセージを表示します。
- サイト改善アンケート & ご指摘/ご質問
-
本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などを アンケート 形式でお伺いしています。また記事の内容に関する ご指摘 や ご質問 もお待ちしています。