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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 範囲演算子
- stepとdownTo
- ループでの範囲
- Charとカスタム範囲