【Kotlin入門】for, whileを学んでループ処理をマスターしよう!


Kotlinのfor文の使い方を学びたい
範囲やMapのfor文での使い方も知りたい
while分も学んで繰り返し処理をマスターしたい

こんにちは!エンジニアのかいです。Kotlinをこれから始めようとしている人、もしくは始めたての人であればプログラミングの基本中の基本であるfor文について上記のような悩みを抱えている人も多いのではないでしょうか?

そこで、本日はKotlin初心者の方を対象にfor文の基礎的な使い方やwhile分の使い方を説明して繰り返し処理の基本をマスターしていただければと思います。

この記事はこんな人のために書きました。

  • Kotlinをはじめたばかりなのでfor文の書き方がわからない
  • 様々なパターンのfor文の使い方を学びたい
  • while文の書き方も知っておきたい

for文の基本的な使い方

さて、それでは実際にfor文の例を見て使い方を学んでいきましょう!

fun main(args: Array<String>) {
    val fruits = arrayListOf<String>("ばなな", "りんご", "ぶどう")
    for (fruit in fruits){
        println(fruit)
    }
}
ばなな
りんご
ぶどう

Kotlinではデフォルトのfor文は他言語でいうところのforeach文に当たります。

なので構文として、以下のようになります。

for(変数 in 配列){
   処理
}

配列の値を一つ一つ変数として与えて、for文内でその変数を利用することができます。もちろんこの変数のスコープはfor文内なのでfor文の外では使えません。

Range構文を使ってみよう

for文で回す時はRange構文を使いたい時もありますよね。Rangeとは範囲のことで、言語によって、1..3という風に書いたりrange関数を使ってrange(3)と書いたりします。Kotlinでは以下のようにします。

fun main(args: Array<String>) {
    for (i in 1..3){
        println(i)
    }

    var count = 3
    for (i in 1..count){
        println(i)
    }
}
1
2
3
1
2
3

ちなみに以下のようにstepを使うと刻み幅を指定できます。

fun main(args: Array<String>) {
    for (i in 1..10 step 2){
        println(i)
    }
}
1
3
5
7
9

mapをfor文で回してみよう

次はmapをfor文で回してみましょう。mapとは他言語ではハッシュや辞書、連想配列などと言いいますが、要はkeyとvalueという値を管理するものです。{key: value}と言った形で管理されているのを見たことがある人も多いのではないでしょうか?

fun main(args: Array<String>) {
    val person = mapOf<String, Int>("taro" to 20, "kota" to 25, "yuka" to 21)
    for((k,v) in person){
        println("$k は $v 才")
    }
}
taro は 20 才
kota は 25 才
yuka は 21 才

mapをfor文で回してkeyが一致したvalueを取り出すなどもよくやりますね。

fun main(args: Array<String>) {
    val person = mapOf<String, Int>("taro" to 20, "kota" to 25, "yuka" to 21)
    for(map in person){
        if(map.key ==  "yuka"){
            println("yuka は ${map.value} 才")
        }
    }
}
yuka は 21 才

for文でインデックスを取り出してみよう

さて、次はインデックスと一緒にfor文を回していきましょう。インデックスとは添え字のことで、配列に振ってある番号のことです。valueのインデックスを取得したいという場面も実際の現場では多々ありますよね。

そんな時はindeicsを使いましょう。

fun main(args: Array<String>) {
    val fruits = arrayListOf<String>("ばなな", "りんご", "ぶどう")
    for (fruit in fruits.indices){
        println("${fruits[fruit]}は${fruit}番目")
    }
}
ばななは0番目
りんごは1番目
ぶどうは2番目

あれ、なんか思ったのと違うな?と感じた人もいるでしょう。変数にインデックスが格納されて、配列[変数]でそのvalueが取れるのはわかったけど、valueと、インデックスは別の変数に入れた方が直感的で良いという人もいますよね。

大丈夫です。そんな時はwithIndexを使いましょう。

fun main(args: Array<String>) {
    val fruits = arrayListOf<String>("ばなな", "りんご", "ぶどう")
    for ((i, fruit) in fruits.withIndex()){
        println("${fruit}は${i}番目")
    }
}
ばななは0番目
りんごは1番目
ぶどうは2番目

すっきりですね。

while文の使い方をみてみよう

それでは最後に同じ繰りかえり処理であるwhile文についてもみておきましょう。とはいえwhileに癖はなく例文を見ていただければ書き方が理解できると思います。

fun main(args: Array<String>) {
    var i = 0
    while(i <= 5){
        println(i)
        i++
    }
}
0
1
2
3
4
5

do-while文は以下の通りです。

fun main(args: Array<String>) {
    var i = 0
    do {
        println(i)
        i++
    } while (i<=5)
}
0
1
2
3
4
5

まとめ

本日は、繰りかえり処理についてfor文を中心に解説してきました。ここに書いてあるものはどれもよく使う上基礎なので必ずマスターしておきましょう!

それでは!!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

かい

かい

日向徹かこよすぎか

kai[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説