【Kotlin】レッスン2-05: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文の基本|繰り返し処理を直感的に記述する方法

Kotlinでは繰り返し処理を行うための便利な構文としてfor文が提供されています。
for文を使うことでリストや配列などのコレクションを簡単に反復処理できます。
本記事ではfor文の基本から応用例までを初心者向けに解説します。
Kotlinのfor文とは?他言語との違いも解説
for文は指定された範囲内で繰り返し処理を行う構造です。
たとえば数値の範囲(例: 1..10
)を使って、一定の回数で処理を繰り返す場合に便利です。
他のプログラミング言語のfor文と同様の役割を果たしますが、Kotlinでは簡潔で直感的な記述が特徴です。
Kotlinのfor構文|範囲と変数を指定して反復処理する
Kotlinにおけるfor文の基本構文は以下のようになります。
for (変数 in 範囲) { // 繰り返したい処理 }
- 変数: 繰り返しごとに範囲内の値が代入される変数。
- 範囲:
1..10
のように、開始値と終了値を指定する範囲演算子を使います。
Kotlinでのfor文使用例|step・downToの活用法も紹介
for文を使った繰り返し処理の例を3つ紹介します。
範囲を使った繰り返し
次の例では1から5までの数値を順番に出力します。
for (i in 1..5) { println(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
ステップを指定する
範囲を反復する際に値を飛ばして繰り返すことも可能です。
たとえば次の例では2ずつ増加させています。
for (i in 1..10 step 2) { println(i) }
このコードを実行すると以下のように実行されます。
1 3 5 7 9
降順の繰り返し
数値を降順に繰り返したい場合はdownTo
を使用します。
for (i in 5 downTo 1) { println(i) }
このコードを実行すると以下のように実行されます。
5 4 3 2 1
条件付きやネスト構造|for文を応用して書くテクニック
for文を用いた繰り返し処理の応用例を2つ紹介します。
条件付きの繰り返し処理
for文の中で条件分岐を加えることで、特定の値に対してのみ処理を行うことができます。
for (i in 1..10) { if (i % 2 == 0) { println("$i は偶数です") } }
このコードを実行すると以下のように実行されます。
2 は偶数です 4 は偶数です 6 は偶数です 8 は偶数です 10 は偶数です
ネストされたfor文
for文を入れ子にすることで多次元的な処理が可能です。
次の例では1から3までの繰り返しを2回ネストしています。
for (i in 1..3) { for (j in 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文のまとめ|Kotlinで繰り返し処理をマスターしよう
Kotlinのfor文は範囲を活用することで、簡潔に繰り返し処理を記述できます。
基本構文を理解し、ステップや降順、条件付きの処理など、さまざまな応用例を試してみましょう。
次回はfor文とは別の繰り返し処理について学習します。
練習問題|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のとき、特定のメッセージを表示します。