0Pricing
Kotlin Academy · レッスン

stepとdownTo

進行方向と間隔を制御します

「stepとdownTo」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。

プログレッションを制御する

通常の範囲は、値を増加させながら1ずつ進みます。Kotlinでは、ステップ幅と方向の両方を変更できます。

そのための機能がstepとdownToで、これらはプログレッションを生成します。

step関数

stepは、値を増加させる量を変更します。

0..10 step 2は、0、2、4、6、8、10を生成します。

fun main() {
    val progression = 0..10 step 2
    println(progression.toList())
}

終了値を飛び越すstep

stepによっては、上限にちょうど到達しないことがあります。その場合、プログレッションは範囲内で到達できる最後の値で停止します。

1..10 step 3は10で終わるとは限りません。範囲内で到達できる最大の値で終わります。

fun main() {
    val progression = 1..10 step 3
    println(progression.toList())
}

downTo関数

downToは、降順のプログレッションを作成します。

5 downTo 1は、5、4、3、2、1を生成します。

fun main() {
    val countdown = 5 downTo 1
    println(countdown.toList())
}

範囲を単に逆順にしない理由

5..1のような通常の範囲は、開始値が終了値より大きいため空になります。

カウントダウンするには、downToを使う必要があります。

fun main() {
    println((5..1).toList())   // empty
    println((5 downTo 1).toList())
}

downToとstepの組み合わせ

降順のプログレッションにもstepを追加できます。

ステップ値は常に正の数で、方向はdownToが処理します。

fun main() {
    val progression = 10 downTo 0 step 2
    println(progression.toList())
}

stepは正数でなければならない

カウントダウンする場合でも、step値は正数でなければなりません。0または負のstepを指定すると例外がスローされます。

方向を決めるのはstepの符号ではなく、..とdownToの違いです。

fun main() {
    try {
        val bad = 0..10 step 0
        println(bad.toList())
    } catch (e: IllegalArgumentException) {
        println("step must be positive")
    }
}

プログレッションは反復可能

プログレッションは、そのままループで処理できます。これが最も一般的な使い方です。

リストを作成することなく、各値を順番に生成します。

fun main() {
    for (i in 10 downTo 1 step 3) {
        print(i.toString() + " ")
    }
    println()
}

プログレッションを調べる

プログレッションには、first、last、stepの値が保持されています。

stepによって終了値を飛び越す場合、lastは指定した終了値と異なることに注意してください。

fun main() {
    val p = 1..10 step 3
    println(p.first)
    println(p.last)
    println(p.step)
}

step付きのuntil

untilにもstepを指定でき、上限を含まない範囲にカスタムの増分を加えられます。

これはインデックスを一定間隔で取り出す場合に便利です。

fun main() {
    val p = 0 until 10 step 2
    println(p.toList())
}

まとめ

プログレッションを使うと、反復を細かく制御できます。

  • stepは増分を設定します
  • downToは値を減少させます
  • stepは常に正数です
  • 組み合わせて使うことができ、そのまま反復処理できます
fun main() {
    for (i in 100 downTo 0 step 25) {
        print(i.toString() + " ")
    }
    println()
}

理解度チェック

stepとdownToについての理解度を確認しましょう。

振り返り

プログレッションを制御する方法を学びました。

  • stepは増分を変更します
  • downToは降順の列を生成します
  • step値は常に正数です
  • 組み合わせて反復処理できます

次は、範囲を使って読みやすいループを作成します。

よくある質問

「stepとdownTo」レッスンは無料ですか?

はい。「stepとdownTo」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。

「stepとdownTo」で何を学びますか?

進行方向と間隔を制御します ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Kotlin Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「stepとdownTo」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このKotlin Academyレッスンでコードを書いて実行できますか?

はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 範囲演算子
  2. stepとdownTo
  3. ループでの範囲
  4. Charとカスタム範囲
← Kotlin Academyに戻る