【第6章】Range(範囲)について詳しく解説

【第6章】Range(範囲)について 基礎勉強
スポンサーリンク
リンコ
リンコ

こんにちは!リンコですピヨ!この記事では自分の勉強の復習もかねて、KotlinでのRange(範囲)について詳しく解説するピヨ!

この第6章では、プログラミング言語であるKotlinのRange(範囲)について、一緒に勉強していきましょう。

この記事を読めばプログラミング未経験の方も、Kotlin入門レベルのRange(範囲)について1つ1つ理解しながら勉強できると思うので、是非最後まで読んで頂ければと思います。

※この記事で出てくる「サンプルコード」は、記述が長く画面からはみ出ている場合がありますが、横にスライドすると表示されるのでご安心ください。

スポンサーリンク

KotlinのRange(範囲)とは?

KotlinのRange(範囲)とは?

Rangeとは何でしょうか?まずはRangeの基礎情報について勉強していきましょう。

Rangeは範囲を表す型

変数の型には、数値型であればDouble型やInt型など、文字型にはChar型、文字列型にはString型、真偽型にはBoolean型と、いろいろな種類が存在しています。

Rangeはこの変数の型の仲間であり、範囲を表す型になります。

「〇〇よりも○○の方が大きい」といった内容であれば「<」の不等号で表すことができますが「〇〇から〇〇まで」といった範囲を指定したい時に、このRangeという範囲を表す型を使います

リンコ
リンコ

Range(範囲)は「〇〇から〇〇まで」の範囲を表したい時に使うピヨ!

範囲は「..」で表現する

範囲は「..」という2つのドットで表すことができます。

具体的に説明すると、例えば1から10の値を表す場合は「1..10」というふうに記述します。

このように2つの値の間に「..」を記述することで、範囲を表すことができます。

リンコ
リンコ

範囲は「..」で表すピヨ!

Rangeを使ったコードを記述してみよう

では実際に、Rangeを使ったコードを記述してみましょう。

サンプルコード

以下のサンプルコードでは、整数の範囲を変数に代入しています。また「IntRange」とありますが、こちらが整数の範囲を表す変数の型になります。

//IntRange型の変数num1に0から5の整数の範囲を代入
val num1: IntRange = 0..5
//IntRange型の変数num2に6から10の整数の範囲を代入
val num2: IntRange = 6..10
println(num1)
println(num2)

出力

上記のコードを実行すると、以下のように出力されます。

0..5
6..10

こんな感じで、整数の範囲を表す変数の型「IntRange」を使うことで「0から5」や「6から10」といった整数の範囲を表すことができるようになります。

リンコ
リンコ

IntRangeを使うことで整数の範囲を表すことができるピヨ!

KotlinのRange(範囲)はどんな時に使う?

KotlinのRange(範囲)はどんな時に使う?

Rangeが範囲を表す変数型ということはわかりました。また整数の範囲を変数に代入する方法もわかりました。では、どのような時にRangeを使うのでしょうか?

とある整数が対象の範囲内に存在するかを調べる時

Rangeでは整数の範囲を変数に代入する以外にも、とある整数が対象の範囲内に存在するかを調べることもできます。どのように調べるのか勉強していきましょう。

範囲内に存在するか調べる時は「in」を使う

とある整数が対象の範囲内に存在するか調べる時は「in」というキーワードを使います。以下のサンプルコードを見てみましょう。

サンプルコード

このサンプルコードでは、変数ageの値が小学生なのか中学生なのか高校生なのかを調べています。

//変数ageに14を代入
val age = 14
//それぞれの変数に整数の範囲を代入
val num1: IntRange = 7..12
val num2: IntRange = 13..15
val num3: IntRange = 16..18
//変数ageの値がnum1、num2、num3の中にあるかどうかを調べ、その結果をそれぞれの変数answerに代入
val answer1 = age in num1
val answer2 = age in num2
val answer3 = age in num3
//println関数で結果を出力
println("${age}歳の子供は小学生 ${answer1}")
println("${age}歳の子供は中学生 ${answer2}")
println("${age}歳の子供は高校生 ${answer3}")

「中身を知りたい変数 in 対象の範囲」と記述することで、Rangeを上手く使うことができます。

上記だと、ageの値がnum1、num2、num3の範囲内にあるかどうかを、Boolean型としてチェックしています。Boolean型としてチェックしているので、answerにはtrueかfalseが代入されます。

出力

上記のコードを実行すると、以下のように出力されます。

14歳の子供は小学生 false
14歳の子供は中学生 true
14歳の子供は高校生 false

変数ageの値14は、変数num2の13から15の中にあるので「14歳の子供は中学生」のみが、trueという結果になりました。

リンコ
リンコ

「in」を使うことで、値がどの範囲にあるか調べられるピヨ!

Rangeでは整数が範囲外かどうかも調べることができる

Rangeでは、とある整数が対象の範囲内に存在するかを調べることができましたが、反対に整数が対象の範囲外にあるかどうかも調べることができます。

範囲外に存在するか調べる時は「!in」を使う

範囲内に存在するかを調べる時は「in」というキーワードを使いましたが、範囲外に存在するかを調べる時は「!in」というキーワードを使います。以下のサンプルコードでどのように使うか見ていきましょう。

サンプルコード

//変数ageに14を代入
val age = 14
//それぞれの変数に整数の範囲を代入
val num1: IntRange = 7..12
val num2: IntRange = 13..15
val num3: IntRange = 16..18
//変数ageの値がnum1、num2、num3の中にないかどうかを調べ、その結果をそれぞれの変数answerに代入
val answer1 = age !in num1
val answer2 = age !in num2
val answer3 = age !in num3
//println関数で結果を出力
println("${age}歳の子供は小学生ではない ${answer1}")
println("${age}歳の子供は中学生ではない ${answer2}")
println("${age}歳の子供は高校生ではない ${answer3}")

このように、値が範囲外かどうかを調べる時は「!in」を使います。さっきの「in」の部分を「!in」に変更するだけですね。

出力

上記のコードを実行すると、以下のように出力されます。

14歳の子供は小学生ではない true
14歳の子供は中学生ではない false
14歳の子供は高校生ではない true

変数ageの値14は、変数num2の13から15の間にあるので「14歳の子供は中学生ではない」のみがfalseで、他の2つの出力はtrueという結果になりました。

リンコ
リンコ

さっきとは反対に、値が範囲外にあるかどうかの時は「!in」を使うピヨ!

Rangeでは整数以外の範囲を表す変数型も用意されている

Rangeでは整数以外の範囲を表す変数型も用意されている

Rangeでは整数以外の範囲を表す変数型も用意されていて、Long型の範囲の「LongRange」と、Char型の範囲の「CharRange」の2つになります。

Long型の範囲を表すLongRange

ではLong型の範囲を調べる場合からですが、Long型の時は「LongRange」という型を使用します。

サンプルコード

Long型の範囲を調べる場合も、基本的に使い方はInt型の時と変わりません。以下のサンプルコードを見てみましょう。

//変数numに0から10000000を代入
val num: LongRange = 0..10000000L
//変数answerに、変数numの中に1000が入っているかどうかの結果を代入
val answer = 1000 in num
println("answer = ${answer}")

出力

answer = true

上記のサンプルコードでは、変数numの中に「1000」が入っていたので、trueと出力されました。

Char型の範囲を表すCharRange

続いてChar型の範囲を調べる場合からですが、Char型の時は「CharRange」という型を使用します。

サンプルコード

Char型の範囲を調べる場合も、基本的に使い方はInt型の時と変わりません。以下のサンプルコードを見てみましょう。

//変数msgに「あ」から「お」を代入
val msg: CharRange = 'あ'..'お'
//変数answerに、変数msgの中に「か」が入っているかどうかの結果を代入
val answer = 'か' in msg
println("answer = ${answer}")

出力

answer = false

上記のサンプルコードでは、変数msgの中に「か」は入っていなかったので、falseと出力されました。またCharRangeの場合は「'(シングルクォーテーション)」で値を挟むようにしましょう。

まとめ

まとめ

この記事では、プログラミング言語であるKotlinのRange(範囲)について勉強していきましたが、いかがでしたでしょうか?今回の記事をまとめると以下のようになります。

  • Range(範囲)は「〇〇から〇〇まで」の範囲を表したい時に使う
  • 範囲は「..」で表す
  • 整数の範囲を表す変数の型は「IntRange」
  • 「in」を記述することで、値がどの範囲にあるか調べられる
  • 値が範囲外にあるかどうか調べる時は「!in」を使う
  • IntRange以外にも、LongRangeやCharRangeがある

今回勉強した「Range(範囲)」はKotlinの入門レベルの知識になるので、何回も読み直してしっかり覚えておきましょう。

リンコ
リンコ

次回の記事では「ifを使った条件分岐」について勉強していくピヨ!

プログラミング未経験の方や入門レベルの方、Kotlinについて詳しくなりたい方は、また一緒に勉強するピヨ!

コメント

タイトルとURLをコピーしました