ストライド
CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部。レッスン 8/56。
範囲は1ステップずつ進みます。異なるステップ幅にしたい場合や、逆方向に数えたい場合は、strideを使います。
2種類があります。stride(from:to:by:)は2つ目の値の前で停止します(半開区間)。stride(from:through:by:)は2つ目の値を含む場合があります(閉区間)。
for n in stride(from: 0, to: 10, by: 2) {
print(n)
}
// 0, 2, 4, 6, 8for n in stride(from: 10, through: 0, by: -2) {
print(n)
}
// 10, 8, 6, 4, 2, 0by: 引数は正しい符号でなければなりません。カウントアップする場合は正、カウントダウンする場合は負です。一致しない場合、ループは0回実行されます。
チャレンジ
簡単3つの整数(3行)を読み取ります: start、end、step。step は正または負の場合があります。範囲は両端を含みます(stride(from:through:by:)を使用します)。
次を出力します:
- stride の値を
,で結合したもの - 生成された値の個数
入力が 0 / 10 / 3 の場合、出力は次のとおりです:
0,3,6,9
4入力が 10 / 0 / -2 の場合、出力は次のとおりです:
10,8,6,4,2,0
6自分で試してみよう
let start = Int(readLine()!)!
let end = Int(readLine()!)!
let step = Int(readLine()!)!
// TODO: stride(from:through:by:) を使い、カンマで連結してから個数を出力する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド