スライドショー

【Swift入門】Rangeの基本的な使い方を覚えよう!

こんにちは!フリーエンジニアのヤマシタです。

Swiftには評価したい値が指定した範囲内かどうか調べるために、Rangeを使用する方法があります。

この記事では、

・Rangeとは
・Rangeの使い方(閉区間)
・Rangeの使い方(開区間)

というRangeの基本的な解説から、

・条件式で使用する方法
・for文で使用する方法

などの応用的な使い方に関しても解説していきます。

今回はそんなRangeの使い方についてわかりやすく解説します!

※この記事ではSwift4.0を使用しています。

Rangeとは

Rangeとは、主に値の下限と上限の範囲を指定する閉区間「下限…上限」と、不等式を用いて評価を行う開区間「下限..<上限」を指定し、値の評価を行います。

Swift2.2まではRangeは開区間のみの指定でしたが、Swift3.0からは閉区間での使用も可能になりました。

また、Swift2.2まではRangeを使用していましたが、3.0からはClosedRangeIndexという型で構造体が返されます。

CountableClosedRangeのインスタンスを生成するには、以下のように記述します。

書き方1:閉区間

let 変数名 = 下限値…上限値

書き方2:開区間

let 変数名 = 下限値..<上限値

指定した範囲内の値かどうかを調べるにはCountableClosedRangeのオブジェクトに対してcontains()を使用します。

containsは範囲内の値だったらTRUEを返します。

Rangeの基本的な使い方

ここでは実際にRangeの使い方を見ていきましょう。

閉区間

以下に閉区間で下限値と上限値を指定して、値を評価する簡単なサンプルを紹介します。

サンプルプログラム1

let range10 = 0...10

print(range10.contains(0))  // true
print(range10.contains(10)) // true
print(range10.contains(11)) // false
print(range10.contains(7))  // true

実行結果:

true
true
false
true

このサンプルでは開区間で下限0上限10を指定し、containsメソッドで指定した数値が範囲内かどうか確認しています。

値が範囲内の場合はTRUE、範囲外の場合はFALSEを返します。

以下のように小数点以下の範囲も指定できます。

サンプルプログラム2

let range10 = 0.0..<10.0

print(range10.contains(9.32))  // true
print(range10.contains(10.2))  // false
print(range10.contains(3.0))   // true

実行結果:

true
false
true

開区間

続けて、開区間で範囲を指定して、値を評価する簡単なサンプルを紹介します。

サンプルプログラム

let range10 = 1..<10

print(range10.contains(0))  // false
print(range10.contains(10)) // false
print(range10.contains(11)) // false
print(range10.contains(7))  // true

実行結果:

false
false
false
true

このサンプルでは開区間で1..<10(1~9の範囲)を指定し、数値が範囲内かどうか確認しています。

条件式で使用する

Rangeで範囲を指定して条件式で使用することもできます。

以下にif文の条件式で範囲を指定するサンプルを紹介します。

サンプルプログラム

var range10 : ((Int) -> Bool)
range10 = { (num: Int) -> Bool in 

  //範囲を指定して値を評価
  if 0...10 ~= num {
    return true
  }
  return false
    
}
 
print(range10(5));
print(range10(12));
print(range10(7));

実行結果:

true
false
true

上記のサンプルでは、

① クロージャの引数に評価する値を指定
② クロージャの中のif文の条件式で閉区間で範囲を指定
③ 値が範囲内(0以上10以下)の場合はtrueを返却

の流れになります。

クロージャの詳しい使い方については、以下の記事解説しています!

for文で使用する

for文の条件式でRangeを使用することもできます。

以下に0~10の範囲を指定してfor文を実行するサンプルを紹介します。

サンプルプログラム

for i in 0...10 {
    print(i)
}

実行結果:

0
1
2
3
4
5
6
7
8
9
10

このようにRangeで範囲を指定することでも簡単にfor文が使用のループ処理が可能なことがわかりますね!

for文については以下の記事でも詳しく解説していますので、ぜひ参考にしてくださいね!

まとめ

ここではRangeについて、

・Rangeとは
・Rangeの使い方(閉区間)
・Rangeの使い方(開区間)
・条件式で使用する方法
・for文で使用する方法

などについて解説しました。

Rangeを使用すれば、さまざまな処理で閉区間、開区間を指定した値の評価を行うことが可能です。

もし、Rangeの使い方を忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

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



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

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

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

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

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

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

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

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