クマの手も借りたい
馬とテニスとリラックマが好きな IT 系のエンジニアです。
Kotlin

【Kotlin入門】範囲を表すRange変数の使いどころを探る

ここまで、Kotlin で使える変数の型をみてきましたが、最後に他の言語では見かけない Range 変数というものがあります。

これは何を表しているのかは想像がつきやすいのですが、どういった場面で使えるのだろうか、そして実際の開発現場では一般的に使われているのが気になりますよね。

ここでは、Range を使った範囲を扱う変数について紹介します。

基本は整数の範囲を扱う変数が活躍する

まずは、整数の範囲を扱う変数を定義してみます。

fun main(args: Array) {
    
    val range_a: IntRange = 11..20
    
    println(range_a)
}

プログラムの実行結果は以下の通りです。

11..20

範囲に含まれるかのチェックをしてみる

では、この変数を使って何か判定をさせてみたいと思います。

例えば、この記事を書いているのは 8 月 15 日なので、15 がこの範囲にあるかチェックしてみましょう。

fun main(args: Array) {
    
    val range_a: IntRange = 11..20
    
    val today: Int = 15
    val is_range = today in range_a
    
    println(is_range)
}

結果は true になります。15 日は 11 日から 20 日の間にありますからね。

逆に含まれない場合をチェックしてみます。

fun main(args: Array) {
    
    val range_a: IntRange = 11..20
    
    val today: Int = 15
    val is_range = today !in range_a
    
    println(is_range)
}

in の前にエクスクラメーションマーク(!)を付けて否定形にしてみました。

当然、結果は false になります。

Range変数の使いどころ

上記の in で範囲かどうかのチェックをした際に Boolean 型の結果を受け取りましたが、この範囲を取り扱う変数は、if などの条件式や、for などの繰り返し処理で活躍できる場面がありそうです。

if文

if 文の場合は先ほどのサンプルと同じく、特定の整数が範囲変数に含まれるかどうか。

val range_a: IntRange = 11..20
val today: Int = 15

if (today in range_a) {
    println("${today}日は${range_a}に含まれています")
}

単純ですが結果は以下の通り。

15日は11..20に含まれています

範囲の最初と最後だけの数値を持っておき、そこに該当の値が含まれるかを Range 変数を使わずに判定しようとした場合、if 文の書き方は以下が一般的ではないかと思います。

val today: Int = 15

if (11 <= today && today <= 20) {
    println("${today}日は11日から20日の間に含まれています")
}

for文

同じように for 文でも繰り返しの範囲に活用できます。

val range_a: IntRange = 11..20
val today: Int = 15

for (a in range_a) {
    if (a == today) {
        println("今日は${today}日で${range_a}に含まれています")
    }
}
やさしいKotlin入門

プログラミング初心者または Kotlin 初心者向けの入門本。Android 開発ではなく Kotlin の言語を覚えてみたい方にオススメの入門本です。

Java と比較して説明される書籍が多い中、Java や他のプログラム言語を知らない人向けになるので、例えば Java はあまり詳しくないけど PHP や Python は書けるといったパターンとも相性がいいですよ。

created by Rinker
¥2,592
(2018/09/20 12:37:29時点 Amazon調べ-詳細)

あなたにオススメ