ループ内の範囲
CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 51/93。
これまで、1ずつ増加する範囲を作成するために 1..5 を使用してきました。Kotlin では、ループ用の範囲をより柔軟に定義する方法が用意されています。
逆方向に数えるには、downToを使用します。
for (i in 5 downTo 1) {
println(i)
}
// 出力: 5, 4, 3, 2, 1数値を飛ばすには、増分を制御するために step を追加します。
for (i in 0..10 step 2) {
println(i)
}
// 出力: 0, 2, 4, 6, 8, 10downTo と step を組み合わせて、カスタム間隔で逆方向にカウントできます。
for (i in 10 downTo 1 step 3) {
println(i)
}
// 出力: 10, 7, 4, 1最後の値を除外する必要がある場合は、.. の代わりに until を使用します。
for (i in 1 until 5) {
println(i)
}
// 出力: 1, 2, 3, 4untilキーワードは、0ベースのインデックスを扱う際に特に便利です。特定の数に到達する前に停止する必要があることが多いためです。
チャレンジ
中級入力から2つの整数、start と end を読み取ります。
start から end まで(両端を含む)のすべての偶数を、それぞれ別の行に出力します。
step とともに downTo を使用して範囲を作成します。start が奇数の場合は、その直下にある最初の偶数から開始します。
たとえば、入力が次のとおりの場合:
10
2出力は次のようになります:
10
8
6
4
2入力が次のとおりの場合:
9
3出力は次のようになります:
8
6
4指定された範囲に偶数がない場合は、1行に No even numbers と出力します。それ以外の場合は、各偶数をそれぞれ別の行に出力します。
自分で試してみよう
fun main() {
// 入力を読み込む
val start = readLine()!!.toInt()
val end = readLine()!!.toInt()
// TODO: 以下にコードを書いてください
// downTo と step を使って、start から end までのすべての偶数を出力する
// start が奇数の場合、それより下の最初の偶数から始める
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド