#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿