Menu
Coddy logo textTech

ストライド

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

範囲(range)は一度に1ステップずつ進みます。異なるステップサイズにしたい場合や、カウントダウンしたい場合は、strideを使用します。

2つの形式があります:stride(from:to:by:) は2番目の値の手前で停止し(半開区間)、stride(from:through:by:) はその値を含む可能性があります(閉区間):

for n in stride(from: 0, to: 10, by: 2) {
    print(n)
}
// 0, 2, 4, 6, 8
for n in stride(from: 10, through: 0, by: -2) {
    print(n)
}
// 10, 8, 6, 4, 2, 0

by:引数は、カウントアップ(増加)するときは正、カウントダウン(減少)するときは負というように、正しい符号である必要があります。不一致の場合、ループは0回実行されます。

challenge icon

チャレンジ

簡単

3つの整数(3行)を読み込みます:startendstep。ステップ(増分)は正または負の値になる可能性があります。範囲は両端を含みますstride(from:through:by:)を使用してください)。

以下を出力してください:

  1. ストライド内の値を,で連結したもの
  2. 生成された値の個数

入力が 0 / 10 / 3 の場合、出力は以下のようになります:

0,3,6,9
4

入力が 10 / 0 / -2 の場合、出力は以下のようになります:

10,8,6,4,2,0
6

チートシート

カスタムのステップサイズが必要な場合や、カウントダウンを行う場合には、strideを使用します。

stride(from:to:by:) — 半開(終了値を含まない):

for n in stride(from: 0, to: 10, by: 2) { }
// 0, 2, 4, 6, 8

stride(from:through:by:) — 閉(終了値を含む):

for n in stride(from: 10, through: 0, by: -2) { }
// 10, 8, 6, 4, 2, 0

by:の値は方向に一致している必要があります。カウントアップの場合は正、カウントダウンの場合は負にします。不一致の場合、反復回数はゼロになります。

自分で試してみよう

let start = Int(readLine()!)!
let end = Int(readLine()!)!
let step = Int(readLine()!)!

// TODO: stride(from:through:by:) を使い、カンマで結合し、カウントを出力する
quiz icon腕試し

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

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