#6 Kotlinで学ぶループの基本

Kotlinのループは、Javaの拡張for文をさらに読みやすくしたような書き方が特徴です。この記事では、Kotlinにおけるループの基本と、実務でよく使う書き方を解説します。

forによる繰り返し

Kotlinのfor文は、範囲やコレクションを対象に書きます。

for (i in 0..4) {
    println(i)
}

0..4は「0から4まで(4を含む)」を表す範囲の書き方です。Rustの0..5(5を含まない)とは範囲の考え方が少し異なるため、他言語の経験がある人は注意しましょう。

リストの中身を処理する

val fruits = listOf("りんご", "みかん", "ぶどう")
for (fruit in fruits) {
    println(fruit)
}

// 添字も同時に使いたい場合
for ((index, fruit) in fruits.withIndex()) {
    println("$index: $fruit")
}

withIndex()を使うと、値だけでなく「何番目の要素か」も一緒に取り出せます。

while文

var count = 0
while (count < 5) {
    println(count)
    count++
}

「最低1回は必ず処理を実行してから条件を確認したい」場合は、do-whileを使います。

var input: String
do {
    input = readLine() ?: ""
} while (input.isEmpty())

ラベルでループを外側から抜ける

二重・三重に入れ子になったループの中から、まとめて外側のループを抜けたい場合は、ループに名前(ラベル)を付ける独自の書き方があります。

outer@ for (i in 0..2) {
    for (j in 0..2) {
        if (i == 1 && j == 1) break@outer
        println("$i, $j")
    }
}

break@outerのように書くと、内側のループだけでなくouterというラベルが付いた外側のループごと抜け出せます。

Kotlinならではの注意点

範囲を表す..は「最後の値を含む」ですが、untilを使うと「最後の値を含まない」範囲になります。

for (i in 0 until 5) {
    println(i)
}

..とuntilのどちらを使うかで、繰り返しの回数が1つずれてしまうことがあるため、範囲に何が含まれるかを意識して選びましょう。

まとめ

Kotlinのループは範囲を使ったforが中心で、..とuntilという2つの範囲の書き方を使い分けるのがポイントです。withIndex()で添字も取得でき、ラベル付きループで多重ループから一気に抜け出すこともできます。


本ページはプロモーションを含みます。

参考書籍(PR)

Kotlinをもっと学びたい方には「やさしいKotlin入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本