Kotlinのforループの基本!範囲・配列・コレクションの繰り返し処理
生徒
「先生、Kotlinで同じ処理を繰り返すforループって何ですか?」
先生
「forループは、決まった回数だけ同じ処理を繰り返す仕組みです。例えば、数字を1から5まで順番に表示するなどが簡単にできます。」
生徒
「難しそうですが、実際にどんな感じで書くのですか?」
先生
「それでは、Kotlinのforループの基本的な使い方を一緒に見ていきましょう!」
1. Kotlinのforループとは?
Kotlin(コトリン)のforループは、同じ処理を何度も繰り返したいときに使われる基本的な仕組みです。例えば、1から10までの数字を順番に表示したいときや、たくさんのデータを1つずつ処理したいときなどにとても役立ちます。ループとは「くり返す」という意味で、コンピューターに「これを順番にやってね」と指示するために使います。
たとえば、毎朝のルーティンを思い浮かべてみてください。「起きる → 顔を洗う → 朝ご飯を食べる」といった流れを毎日くり返しますよね。プログラムの世界でも、同じように決まった手順をくり返す場面がたくさんあります。そうしたときに登場するのがforループです。
まずは、とてもシンプルな例を見てみましょう。1から3までの数字を順番に表示するプログラムです。
fun main() {
for (i in 1..3) {
println(i)
}
}
実行すると、1、2、3と順番に表示されます。1..3は「1から3までの範囲」、iはそこから取り出された数字を順番に受け取るための変数です。はじめてKotlinを学ぶ人でも、このような仕組みを理解することで、複雑な処理がぐっと書きやすくなります。
2. 基本の書き方(範囲を使う)
Kotlinのforループの中でも、もっとも基本的で覚えやすいのが「範囲(1..5 など)を使った書き方」です。まずは、1から5までの数字を順番に表示するシンプルな例を見てみましょう。はじめての方でも、「数字を順番に動かす」感覚がつかみやすいサンプルです。
fun main() {
for (i in 1..5) {
println(i)
}
}
このプログラムを実行すると、1・2・3・4・5 の数字が1行ずつ順番に表示されます。1..5は「1から5までの範囲」を表す特別な書き方で、Kotlinではとてもよく使われる文法です。
そして、inというキーワードは「~の中に」という意味を持ち、iという変数が、この範囲の数字をひとつずつ受け取っていきます。つまり、「iが1のときにprint、次は2のときにprint…」と順番に処理していくイメージです。
たとえると、1から5までの数字が整列していて、iがその列を先頭から順番に歩いていきながら、「今はこの数字だよ」と教えてくれるようなイメージです。初心者の方でも、数字の並びを扱うときの最初のステップとして非常に理解しやすく、練習にも最適です。
3. 配列のforループ
次は、複数のデータを一つにまとめて扱える「配列(はいれつ)」を使ったforループを見ていきましょう。配列とは、同じ種類のデータを順番にしまっておける箱のようなもので、番号(インデックス)を使って中身を取り出すことができます。日常で言えば、卵が6個並んだパックのように、決まった順番で物が並んでいるイメージです。
例えば、「りんご」「みかん」「バナナ」という果物を配列に入れて、それを順番に表示したい場合は次のように書きます。
fun main() {
val fruits = arrayOf("りんご", "みかん", "バナナ")
for (fruit in fruits) {
println(fruit)
}
}
arrayOfは、複数の値をまとめて配列として扱えるようにする仕組みです。そしてfor (fruit in fruits)では、「fruitsの中に入っているデータを、先頭から順番にfruitに取り出して使う」という意味になります。とても自然な書き方なので、プログラミング初心者でも理解しやすいのが特徴です。
実行すると、次のように果物の名前が順番に表示されます。
りんご
みかん
バナナ
配列を使うと、3つでも10個でも100個でも、どれだけデータが増えても簡単に繰り返し処理ができるようになります。「決まった数のデータを順番に扱いたい」と思ったときに、まず思い出してほしい仕組みです。
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
4. コレクションのforループ
配列のほかにも、Kotlinには「コレクション」と呼ばれる便利な仕組みがあります。コレクションは、たくさんのデータをまとめて扱うためのグループのようなもので、よく使われるものとしてリスト(List)やマップ(Map)があります。配列と似ていますが、あとから要素を増やしたり、用途に合わせて柔軟に使えるのが特徴です。
ここでは、もっともよく使われる「リスト(List)」を例に、forループでデータを順番に取り出す方法を見てみましょう。リストは「順番つきのデータの集まり」と考えるとイメージしやすいです。
fun main() {
val numbers = listOf(10, 20, 30)
for (num in numbers) {
println(num)
}
}
listOfは、指定した値をまとめてリストとして扱えるようにする関数です。val numbers = listOf(10, 20, 30)の行で、「10・20・30という3つの数字を並べたリスト」を作っています。
その下のfor (num in numbers)は、「numbersの中に入っている値を、先頭から1つずつnumという変数に取り出して使う」という意味になります。配列のときと同じように、inは「〜の中に」というイメージで読むと分かりやすいです。
このプログラムを実行すると、次のように数字が順番に表示されます。
10
20
30
リストを使ったforループは、商品名の一覧、点数の一覧、ユーザー名の一覧など、現実のアプリでよく出てくる「並んだデータ」を処理するときに頻繁に登場します。まずは、このようなシンプルな形で「リストの中身を順番に取り出す」書き方に慣れておくと、Kotlinでの繰り返し処理がぐっと使いやすくなります。
5. インデックスを使いたいとき
データの順番を表す数字を「インデックス」といいます。例えば、1番目は0、2番目は1、3番目は2になります(コンピューターの世界では0から始まることが多いです)。
もし、forループでインデックスも一緒に知りたいときは、withIndex()を使います。
fun main() {
val animals = listOf("犬", "猫", "うさぎ")
for ((index, animal) in animals.withIndex()) {
println("$index: $animal")
}
}
withIndex()を使うと、index(順番)とanimal(動物の名前)を同時に取り出せます。実行すると、次のように表示されます。
0: 犬
1: 猫
2: うさぎ
6. ポイント整理
Kotlinのforループは、範囲(1..5など)や配列、コレクション(リストなど)を順番に繰り返し処理するときに使う大切な仕組みです。
最初は難しく感じるかもしれませんが、何度も書いて試すうちにすぐに慣れてきます。パソコンを使うのがはじめてでも、サンプルコードを写して動かしてみることで理解が深まります。
「forループって便利だな!」と思ったら、いろんな配列やリストで試してみてくださいね。
まとめ
Kotlinのforループは、範囲や配列、そしてリストやマップといったコレクションを扱うときに欠かせない構文であり、プログラムの基本ともいえる大切な知識です。あらためて振り返ってみると、forループは「決まった回数だけ処理を繰り返す」という単純な動きの中に、柔軟性や応用の幅がとても広い特徴を持っていることがわかります。とくに、1..5のような範囲表現を使える点は直感的で、数の並びを扱う場面が多いアプリケーション開発ではとても便利です。初心者でもわかりやすく、読み手に伝わりやすい形で繰り返し処理を書けるのは、大きな魅力といえるでしょう。
また、配列やリスト、マップといった複数のデータをまとめて扱う構造と組み合わせることで、forループの活用範囲は一気に広がります。複数の種類の果物や動物の名前、数字のリストなどを処理する場面は現実のアプリ開発でもよく登場しますので、こうしたデータを一つずつ取り出せるのはとても重要なポイントです。それに加え、withIndex()を使えば、単に値を取り出すだけでなく、その位置を示すインデックスも同時に取り扱えます。これはユーザーに一覧を表示したり、編集機能を実装したりするときに欠かせない知識になります。
ここで改めて考えると、forループを理解することは「データを順番に扱う力」を身につけることでもあります。プログラムが扱う情報は、単体の数値や文字だけではなく、複数の情報がまとまった形で存在することが非常に多いです。そのため、配列やリストを正しく処理できる力は、どのプログラミング言語でも基礎中の基礎として求められるものです。こうした内容を理解したうえで、実際にコードを書いたり動かしたりすることで、より深い学びが経験できます。
さらに、for構文はKotlinの特徴であるシンプルで読みやすい文法と非常に相性がよく、アプリケーション全体のコードが整理され、メンテナンスもしやすくなるという利点があります。特に、範囲指定の記述やinを使った自然な表現は、初心者がつまずきやすい「繰り返しの書き方」をやさしく導いてくれる役割を果たします。将来的により複雑な処理を書くときにも、この基本形を知っていることで応用がスムーズになります。
それでは、今日学んだ内容を活かし、複数の種類のデータを扱う少し発展的なサンプルプログラムを見ていきましょう。範囲・配列・リスト・インデックスの使い方を一度に確認できるので、理解の深まりにもつながります。
サンプルプログラム:範囲・配列・リストを組み合わせたforループ処理
fun main() {
// 1から5までの数字を表示する
for (i in 1..5) {
println("数字: $i")
}
// 配列の果物を順番に表示する
val fruits = arrayOf("りんご", "みかん", "ぶどう", "バナナ")
for (fruit in fruits) {
println("果物: $fruit")
}
// リストの動物とインデックスを表示する
val animals = listOf("犬", "猫", "うさぎ", "とり")
for ((index, animal) in animals.withIndex()) {
println("番号: $index, 動物: $animal")
}
// 数値範囲を使って計算を行う
var total = 0
for (n in 1..10) {
total += n
}
println("1から10までの合計: $total")
}
生徒
「きょうのまとめで、forループがこんなに便利だということがよくわかりました!範囲や配列、リストの使い方が頭の中でつながった気がします。」
先生
「それは素晴らしいですね。forループはどのプログラムでも頻繁に出てくる要素なので、理解しておくとこれからの学習がとても楽になりますよ。」
生徒
「インデックス付きのループも実際のアプリでよく使いそうだと思いました。番号と一緒に表示できるのは便利ですね。」
先生
「そのとおりです。データの位置が必要な処理は本当に多いのでwithIndex()は覚えておくと役に立ちますよ。」
生徒
「範囲を使った計算例もおもしろかったです。いろいろ応用できそうですね。」
先生
「これから練習する中で、さらに柔軟に使えるようになりますよ。ぜひたくさんコードを書いて試してみてください。」