Menu
Coddy logo textTech

閉区間と半開区間

CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 7/56。

Swiftには、見た目はほとんど同じですが、意味が異なる2つの範囲演算子があります。

a...b閉範囲です。これには b が含まれます:

for i in 1...3 { print(i) }
// 1
// 2
// 3

a..<b半開範囲です。これは b手前で終了します:

for i in 1..<3 { print(i) }
// 1
// 2

カウント(要素数)を扱う場合、半開範囲が自然に適合します。0..<arr.count は配列のすべての有効なインデックスを網羅します。両端が考慮すべき実際の値である場合(スコアの範囲や、境界値を含む成績の区切りなど)は、閉じた範囲を使用します。

challenge icon

チャレンジ

簡単

2つの整数(2行): ab を読み込みます。ただし a <= b とします。以下の3行を出力してください:

  1. 閉区間 a...b の値を , で連結して1行で表示
  2. 半開区間 a..<b の値を , で連結して表示(範囲が空の場合は空行を表示)
  3. 閉区間内のすべての値の合計を表示

入力が 1 次に 5 の場合、出力は以下のようになります:

1,2,3,4,5
1,2,3,4
15

チートシート

Swiftにおける範囲演算子:

  • a...b閉範囲abの両方を含む
  • 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: 結合した閉区間、結合した半開区間、閉区間の合計を出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン