【Kotlin】レッスン2-05:for文による繰り返し処理を理解しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:for文による繰り返し処理

この記事の練習問題を解くために必要な知識:
基礎文法(レッスン1)比較演算子と論理演算子if文による分岐処理when文による分岐処理スマートキャストfor文による繰り返し処理while文による繰り返し処理繰り返しの制御エラーメッセージ例外処理

<<前のページ Kotlin記事一覧 次のページ>>

Kotlinの「for文による繰り返し処理」とは

この章ではKotlinにおける「for文による繰り返し処理」の意味や使い方を学習します。用語の解説が不要な方はここをクリックして練習問題へ飛びましょう。




Kotlinでは繰り返し処理を行うための便利な構文としてfor文が提供されています。

for文を使うことでリストや配列などのコレクションを簡単に反復処理できます。

本記事ではfor文の基本から応用例までを初心者向けに解説します。

for文とは?

for文は指定された範囲内で繰り返し処理を行う構造です。

たとえば数値の範囲(例: 1..10)を使って、一定の回数で処理を繰り返す場合に便利です。

他のプログラミング言語のfor文と同様の役割を果たしますが、Kotlinでは簡潔で直感的な記述が特徴です。

for文の基本構文

Kotlinにおけるfor文の基本構文は以下のようになります。

for (変数 in 範囲) {
    // 繰り返したい処理
}
  • 変数: 繰り返しごとに範囲内の値が代入される変数。
  • 範囲1..10のように、開始値と終了値を指定する範囲演算子を使います。

for文の使用例

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

まとめ

Kotlinのfor文は範囲を活用することで、簡潔に繰り返し処理を記述できます。

基本構文を理解し、ステップや降順、条件付きの処理など、さまざまな応用例を試してみましょう。

次回はfor文とは別の繰り返し処理について学習します。

for文による繰り返し処理の練習問題

数値を範囲で指定して繰り返し処理を行い、それに応じた出力を表示するプログラムを作成しましょう。

さらにif文やwhen文を組み合わせて条件に応じたメッセージを表示する方法を学びます。

この問題の要件

以下の要件に従ってコードを完成させてください。

  1. 数値1から5までを繰り返し処理して、それぞれの数値を出力すること。
  2. 数値1から10までを繰り返し処理して、偶数のみを出力すること。
  3. 数値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: その他の数です")
        }
    }
}

正解コードの解説

今回作成したKotlinコードは、繰り返し処理を使用して数値を操作し、条件に応じて異なるメッセージを表示するプログラムです。

コードをブロックごとに分けて解説します。

メイン関数の開始

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: その他の数です")
    }
}
  • when: 複数の条件を簡潔に記述するための分岐構文です。
  • 1 -> println("$i: 一番最初の数です")iが1のとき、特定のメッセージを表示します。
  • else -> println("$i: その他の数です"): どの条件にも該当しない場合に表示されるメッセージです。
<<前のページ Kotlin記事一覧 次のページ>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Kotlinのテキスト&問題集トップへ戻る
    トップページへ戻る