Menu
Coddy logo textTech

ループ内の範囲

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, 10

downTostep を組み合わせて、カスタム間隔で逆方向にカウントできます。

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, 4

untilキーワードは、0ベースのインデックスを扱う際に特に便利です。特定の数に到達する前に停止する必要があることが多いためです。

challenge icon

チャレンジ

中級

入力から2つの整数、startend を読み取ります。

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 が奇数の場合、それより下の最初の偶数から始める
    
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド