閉区間と半開区間
CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 7/56。
Swiftには、見た目はほとんど同じですが、意味が異なる2つの範囲演算子があります。
a...b は閉範囲です。これには b が含まれます:
for i in 1...3 { print(i) }
// 1
// 2
// 3a..<b は半開範囲です。これは b の手前で終了します:
for i in 1..<3 { print(i) }
// 1
// 2カウント(要素数)を扱う場合、半開範囲が自然に適合します。0..<arr.count は配列のすべての有効なインデックスを網羅します。両端が考慮すべき実際の値である場合(スコアの範囲や、境界値を含む成績の区切りなど)は、閉じた範囲を使用します。
チャレンジ
簡単2つの整数(2行): a と b を読み込みます。ただし a <= b とします。以下の3行を出力してください:
- 閉区間
a...bの値を,で連結して1行で表示 - 半開区間
a..<bの値を,で連結して表示(範囲が空の場合は空行を表示) - 閉区間内のすべての値の合計を表示
入力が 1 次に 5 の場合、出力は以下のようになります:
1,2,3,4,5
1,2,3,4
15チートシート
Swiftにおける範囲演算子:
a...b— 閉範囲、aとbの両方を含むa..<b— 半開範囲、aを含むがbの直前で止まる
for i in 1...3 { print(i) } // 1, 2, 3
for i in 1..<3 { print(i) } // 1, 2すべての有効な配列インデックスを網羅するには、0..<arr.countを使用します。両端の値が意味を持つ場合は、閉範囲を使用します。
自分で試してみよう
let a = Int(readLine()!)!
let b = Int(readLine()!)!
// TODO: 結合した閉区間、結合した半開区間、閉区間の合計を出力する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。