Menu
Coddy logo textTech

ループと範囲

CoddyのSwiftジャーニー「基礎」セクションの一部。レッスン 48/86。

ループで 1...5 のような範囲を使ってきましたが、Swift では範囲の定義方法にさらに柔軟性があります。さまざまな範囲の種類と、逆向きにカウントする便利なテクニックを見ていきましょう。

閉じた範囲演算子...)は両方の端点を含みます:

for i in 1...3 {
    print(i)
}
// 出力: 1, 2, 3

半開区間演算子..<)は上限を含みません。これは、0 始まりのインデックスを扱うときに特に便利です。

for i in 0..<3 {
    print(i)
}
// 出力: 0, 1, 2

逆順にループする必要がある場合があります。reversed()メソッドを使うと、範囲を逆方向に反復処理できます。

for i in (1...3).reversed() {
    print(i)
}
// 出力: 3, 2, 1

範囲の周りにある括弧に注目してください。範囲に対して reversed() を呼び出すときは、括弧が必要です。このテクニックは、カウントダウンや、項目を最後から最初へ処理する必要がある場合に最適です。

challenge icon

チャレンジ

簡単
関数 countdown を記述してください。この関数は n を受け取り、n から 1 までのカウントダウンに続いて "Go!" を含む文字列を返します。

範囲に対して reversed() メソッドを使用して逆方向に反復し、カウントダウン文字列を作成してください。

ロジック:

  • 1 から n までの範囲を作成し、逆順にする
  • 各数値を改行で区切った文字列を作成する
  • 最後の行に "Go!" を追加する

パラメーター:

  • n (Int): カウントダウンの開始値(1 以上)

戻り値: 各カウントダウンの数値をそれぞれ独自の行に配置し、"Go!" (String) で終わる文字列。形式:

3
2
1
Go!

たとえば、n3 の場合、関数は "3\n2\n1\nGo!" を返します。

自分で試してみよう

func countdown(n: Int) -> String {
    // ここにコードを書いてください
}
quiz icon腕試し

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

基礎のすべてのレッスン

自分で練習してみよう: Swiftプレイグラウンド