Kotlinのrangeとstepの使い方を完全ガイド!初心者にもわかる繰り返し処理の基本
生徒
「Kotlinで、同じことを何回も繰り返すようなプログラムってどうやって書くんですか?」
先生
「Kotlinでは、rangeやstepという便利な機能を使って、数字の繰り返し処理が簡単に書けますよ。」
生徒
「そのrangeとかstepって、どんな感じで使うんですか?」
先生
「それでは、Kotlinのrangeとstepを使った繰り返し処理の基本的な使い方を、わかりやすく見ていきましょう!」
1. range(レンジ)とは?Kotlinの繰り返し処理の基本
Kotlin(コトリン)におけるrange(レンジ)とは、「ある範囲の数を順番に取り出す」ための機能です。たとえば、1から5までの数字を順に処理したいときに使います。
レンジを使うと、次のように書くことができます。
for (i in 1..5) {
println(i)
}
このコードでは、「1から5までの数値を、順番にiに代入して、繰り返し処理をする」という意味になります。
1..5という記法は、1から5までの連続した数字の範囲を意味します。これがKotlinのrange(範囲)です。
2. step(ステップ)で数字の増え方を変える
rangeだけだと、数字は1つずつ増えていきます。つまり「1, 2, 3, 4, 5」と進みます。でも、2つずつ増やしたいときや、3つずつ増やしたいときもありますよね。
そんなときに使えるのが、step(ステップ)というキーワードです。
たとえば、1から10までを2つずつ進めたいときは、次のように書きます。
for (i in 1..10 step 2) {
println(i)
}
このコードでは、iの値は「1, 3, 5, 7, 9」となります。step 2によって、「2ずつ増える」ことになります。
3. downTo(ダウントゥ)で数字を減らす繰り返し
Kotlinでは、数を増やすだけでなく、減らすこともできます。つまり、「10から1へ」といった繰り返しも可能です。
そのときに使うのがdownToです。
for (i in 5 downTo 1) {
println(i)
}
このコードでは、「5, 4, 3, 2, 1」と数が減っていきます。downToは、「上から下へ」数字を進めたいときに便利です。
4. downToとstepを組み合わせる
downToとstepを組み合わせれば、「数を減らしながら、2ずつ飛ばす」といった処理もできます。
for (i in 10 downTo 0 step 2) {
println(i)
}
この場合は、「10, 8, 6, 4, 2, 0」と出力されます。
つまり、「10から0までを2ずつ減らしていく」という意味になります。
5. Kotlinの繰り返し処理の特徴とrange・stepの使い分け
Kotlinではfor文の中にinを使って、範囲やステップの指定ができるのが特徴です。
同じような繰り返しでも、「何回くり返すか」「何の数字から始めるか」「いくつずつ増やす(減らす)か」で、rangeやstepを上手に使い分けることが大切です。
- 1..5:1から5まで(1ずつ増える)
- 1..10 step 2:1から10まで2ずつ増える
- 10 downTo 1:10から1まで(1ずつ減る)
- 10 downTo 0 step 2:10から0まで2ずつ減る
6. 実行結果の例を見てみよう
それぞれの例を実行すると、画面には次のように表示されます。
以下は、for (i in 1..5)の出力です。
1
2
3
4
5
次は、for (i in 1..10 step 3)の出力です。
1
4
7
10
最後に、for (i in 5 downTo 1)の出力です。
5
4
3
2
1
まとめ
Kotlinのrangeとstepは、数字の繰り返し処理を直感的に書ける非常に便利な仕組みであり、プログラムの構造をすっきりと読みやすくしてくれます。今回学んだ内容をふり返ると、rangeによって「どこからどこまで」の範囲を指定し、stepで「どれくらいの間隔で数字を進めるか」を調整し、さらにdownToで逆方向の繰り返しも柔軟に扱えることがわかりました。特に、繰り返し処理が多く出てくる実践的な開発では、rangeやstepを適切に使うことでコード全体がとてもシンプルになり、処理の意図も読み取りやすくなるという大きな利点があります。
例えば、一定間隔でループしたい場合や、特定の数値の組み合わせを調べたい場面など、rangeとstepの組み合わせは非常に役立ちます。また、downToを併用することで、数字を増やすだけでなく減らす方向にも自由に繰り返し処理ができます。こうしたさまざまな表現が簡潔に書けるのはKotlinの大きな魅力のひとつです。数字の順番を扱う処理だけでなく、複雑なアルゴリズムの基礎となる繰り返しを理解するうえでも、range・step・downToの組み合わせを身につけておくことはとても大切です。
rangeは「開始から終了までの範囲」を表す基本的な仕組みですが、stepを追加すると数字の進み方が自由に制御できるようになり、さらにdownToを使うと減少方向の処理も自然に表現できるため、単純なforループよりも表現力が高く、可読性の高いコードを書くことができます。特に、一定の感覚で値を取り出したい場面や、配列やリストから必要な部分だけを取り出す場合など、stepを使った繰り返しが非常に効果的です。
また、Kotlinの繰り返し処理の書き方は、Javaや他のプログラミング言語のfor文と比べてもとても簡潔で、初心者でも理解しやすい構造になっています。「何を」「どこから」「どこまで」「どれくらいの間隔で」繰り返すかをシンプルな記述で表現できるため、処理の流れがひと目で理解できます。そのため、プログラムを書き進める上で「どう書けばわかりやすいか」を考える習慣をつけるうえでも、rangeやstepを活用した書き方は大きく役立ちます。
ここでは、実際にrange・step・downToをまとめて使用した応用例として、数字の増加と減少を組み合わせて処理するサンプルコードも紹介していきます。複数の範囲やステップを使い分ける状況でも、Kotlinの記述は非常に直感的であることを確認できるはずです。
サンプルプログラム:range・step・downToを組み合わせた応用例
fun main() {
println("1から10までを3ずつ増やすパターン")
for (i in 1..10 step 3) {
println("現在の値:$i")
}
println("10から1までを2ずつ減らすパターン")
for (i in 10 downTo 1 step 2) {
println("カウントダウン:$i")
}
println("複数のrangeを組み合わせる例")
for (i in 1..5) {
for (j in 5 downTo 1 step 2) {
println("i=$i, j=$j")
}
}
}
このサンプルでは、「増加方向のrange+step」「減少方向のdownTo+step」「複数rangeの組み合わせ」という三つの構造をまとめて扱っています。こうしたループ構造は、実際のアプリケーション開発でも使われることが多く、特にデータ分析やシミュレーション、ゲーム開発などの分野では欠かせない考え方となります。rangeやstepを自由に使いこなせるようになると、ループの理解が深まり、より複雑なロジックの準備が自然と整っていきます。
また、rangeを使った繰り返しは可読性の高さが大きな特長です。コードを読む側にとっても、どのような範囲で、どのように数字が変化していくのかが直感的にわかり、意図がきちんと伝わるプログラムになります。プログラミングにおいては「書く側だけでなく読む側にとってわかりやすいコードを書く」ことがとても重要であり、その観点でもrangeとstepの活用は非常に有効です。
downToによる減少方向の繰り返しは、逆順で処理したいときや、終了条件を上から下に向かって進めたい場面で便利です。数字の大きい方から小さい方へ進める処理は、ファイルの並び替えやページ番号の逆表示など、意外と多くの場面で必要になります。こうした処理が自然に書けるのもKotlinならではの魅力です。
今回の記事で学んだrange・step・downToの基本をしっかりと理解しておくことで、今後より高度な繰り返し処理やアルゴリズムに取り組む際にも役立つ基礎力が身につきます。特にfor文を使った処理では、rangeを軸に考えることで構造が整理され、プログラム全体が見通しやすくなります。こうした基本操作を確実に身につけることが、プログラミングの実力を上げる大きな一歩になるでしょう。
生徒
「rangeとstepって最初はただ数字を並べるだけの仕組みだと思っていましたが、こんなに柔軟なんですね!」
先生
「その気づきはとても大切です。rangeは繰り返し処理の中心で、stepを組み合わせることで実に多様なパターンが表現できますよ。」
生徒
「downToで数字が減らせるのも便利ですね。逆順の処理って意外と使いそうです!」
先生
「そのとおりです。逆方向のループは実務でもよく使われますし、処理の流れを工夫する上でも欠かせない考え方です。」
生徒
「サンプルプログラムも動かしてみたら、増えるパターンや減るパターンがすぐ理解できました!」
先生
「理解が深まっているようで素晴らしいですね。rangeとstepは今後の学習でも何度も使いますので、ぜひいろいろなパターンを試してみてください。」