Swift Academy · レッスン

閉じた範囲と半開範囲

ループやスライスで...と..<を正しく使用します。

レッスン 1/413 ステップ

「閉じた範囲と半開範囲」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

範囲とは

範囲は、下限と上限の間にある値の並びを表します。Swift には、このための主な範囲演算子が2つあります。

let r = 1...5
for n in r {
    print(n)
}

閉区間

閉区間演算子 a...b は、両方の端点を含みます。1...5 には 1、2、3、4、5 が含まれます。

for n in 1...5 {
    print(n)
}

半開区間

半開区間演算子 a..<b は下限を含みますが、上限を含みません。0..<5 には 0、1、2、3、4 が含まれます。

for n in 0..<5 {
    print(n)
}

半開区間がよく使われる理由

半開区間は、個数やインデックスと非常に相性がよい仕組みです。0..<array.count を使うと、有効なすべてのインデックスをちょうど1回ずつ訪問できます。

let items = ["a", "b", "c"]
for i in 0..<items.count {
    print("\(i): \(items[i])")
}

範囲には count がある

範囲には、count プロパティを通じて、その範囲に含まれる値の個数が記録されています。

let closed = 1...5
let halfOpen = 0..<5
print(closed.count)
print(halfOpen.count)

所属の確認

contains を使うと、値が範囲内にあるかどうかを確認できます。

let valid = 1...100
print(valid.contains(50))
print(valid.contains(0))
print(valid.contains(101))

下限と上限

すべての範囲には、lowerBound と upperBound プロパティがあります。

let r = 10...20
print(r.lowerBound)
print(r.upperBound)

空の範囲と1要素の範囲

5..<5 のような半開区間は空になります。閉区間は両端を含むため、空にはなりません。

let empty = 5..<5
print(empty.isEmpty)
let single = 5...5
print(single.count)

switch での範囲

範囲は switch の case パターンとして使うことができ、値を区分に分類できます。

let score = 73
switch score {
case 0..<60:
    print("Fail")
case 60...100:
    print("Pass")
default:
    print("Invalid")
}

境界の順序を守る

下限は上限を超えてはいけません。5...1 と書くと実行時にクラッシュするため、境界は順序どおりに指定してください。

let lo = 2
let hi = 8
if lo <= hi {
    for n in lo...hi {
        print(n)
    }
}

反復回数を数える

インデックスを使わずに何かを N 回だけ繰り返したい場合は、_ と範囲を組み合わせて使用してください。

var total = 0
for _ in 1...4 {
    total += 10
}
print(total)

確認問題

閉区間と半開区間を試してみましょう。

まとめ:閉区間と半開区間

a...b は両端を含み、a..<b は上端を含まず、個数やインデックスと自然に組み合わせられます。範囲は count、contains、境界の各プロパティをサポートしています。

for i in 0..<3 { print(i) }
無料で開始

AI チューターと学ぶ Swift — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
122
レッスン
409

よくある質問

「閉じた範囲と半開範囲」レッスンは無料ですか?

はい。「閉じた範囲と半開範囲」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「閉じた範囲と半開範囲」で何を学びますか?

ループやスライスで...と..<を正しく使用します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「閉じた範囲と半開範囲」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 閉じた範囲と半開範囲
  2. 片側範囲
  3. stride(from:to:by:)によるカウント
  4. コレクションとしての範囲
← Swift Academyに戻る