ループと範囲
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() を呼び出すときは、括弧が必要です。このテクニックは、カウントダウンや、項目を最後から最初へ処理する必要がある場合に最適です。
チャレンジ
簡単関数 countdown を記述してください。この関数は n を受け取り、n から 1 までのカウントダウンに続いて "Go!" を含む文字列を返します。
範囲に対して reversed() メソッドを使用して逆方向に反復し、カウントダウン文字列を作成してください。
ロジック:
1からnまでの範囲を作成し、逆順にする- 各数値を改行で区切った文字列を作成する
- 最後の行に "Go!" を追加する
パラメーター:
n(Int): カウントダウンの開始値(1 以上)
戻り値: 各カウントダウンの数値をそれぞれ独自の行に配置し、"Go!" (String) で終わる文字列。形式:
3
2
1
Go!たとえば、n が 3 の場合、関数は "3\n2\n1\nGo!" を返します。
自分で試してみよう
func countdown(n: Int) -> String {
// ここにコードを書いてください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド