Bird
Raised Fist0
Swiftprogramming~5 mins

Stride for custom step in Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the stride(from:to:by:) function do in Swift?
It creates a sequence of values starting from a given number, going up to (but not including) another number, stepping by a custom amount each time.
Click to reveal answer
intermediate
How is stride(from:through:by:) different from stride(from:to:by:)?
stride(from:through:by:) includes the end value in the sequence if it matches a step, while stride(from:to:by:) stops before reaching the end value.
Click to reveal answer
beginner
Write a Swift code snippet using stride(from:to:by:) to print even numbers from 2 up to 10 (excluding 10).
for number in stride(from: 2, to: 10, by: 2) { print(number) } // Output: 2 4 6 8
Click to reveal answer
intermediate
Can stride be used with negative steps? Give an example.
Yes, you can use negative steps to count down. Example: for number in stride(from: 10, to: 0, by: -2) { print(number) } // Output: 10 8 6 4 2
Click to reveal answer
beginner
Why might you choose stride over a traditional for-in loop with a range?
Because stride lets you control the step size, including skipping numbers or counting backwards, which a simple range loop can't do directly.
Click to reveal answer
What will stride(from: 1, to: 5, by: 2) produce?
A[1, 3, 5]
B[1, 3]
C[1, 2, 3, 4, 5]
D[2, 4]
Which function includes the end value if it matches the step exactly?
Astride(from:to:by:)
Brange(from:to:by:)
Cstride(from:through:by:)
Drange(from:through:by:)
What happens if you use a negative step with stride(from:to:by:) but the start is less than the end?
AIt reverses the sequence
BIt counts up normally
CIt causes a runtime error
DIt creates an empty sequence
How would you print numbers from 10 down to 2 stepping by 2 using stride?
Astride(from: 10, to: 2, by: -2)
Bstride(from: 10, to: 2, by: 2)
Cstride(from: 2, to: 10, by: -2)
Dstride(from: 2, to: 10, by: 2)
Which of these is NOT a valid use of stride in Swift?
Astride(from: 1, to: 5, by: 0)
Bstride(from: 10, through: 0, by: -2)
Cstride(from: 0, to: 10, by: 1)
Dstride(from: 5, to: 15, by: 3)
Explain how to use stride to create a sequence with a custom step size and why it might be useful.
Think about how you count in steps bigger than 1 or backwards.
You got /5 concepts.
    Describe the difference between stride(from:to:by:) and stride(from:through:by:) with examples.
    One stops before the end, the other can include it.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Swift function stride(from: 1, to: 10, by: 2) do?
      easy
      A. Generates numbers starting at 1, decreasing by 2, up to but not including 10.
      B. Generates numbers starting at 1, increasing by 2, including 10.
      C. Generates numbers starting at 1, increasing by 2, up to but not including 10.
      D. Generates numbers starting at 1, decreasing by 2, including 10.

      Solution

      1. Step 1: Understand the parameters of stride

        The function uses from: 1 as the start, to: 10 as the end (exclusive), and by: 2 as the step size.
      2. Step 2: Determine the sequence generated

        It generates numbers starting at 1, adding 2 each time, stopping before reaching 10, so the sequence is 1, 3, 5, 7, 9.
      3. Final Answer:

        Generates numbers starting at 1, increasing by 2, up to but not including 10. -> Option C
      4. Quick Check:

        stride(from:1, to:10, by:2) excludes 10 [OK]
      Hint: Remember: 'to' excludes the end value in stride [OK]
      Common Mistakes:
      • Confusing 'to' with 'through' and including the end value
      • Mixing up positive and negative step directions
      • Assuming the step is always 1
      2. Which of the following is the correct syntax to create a stride in Swift that counts down from 10 to 2 by steps of 2, including 2?
      easy
      A. stride(from: 10, through: 2, by: -2)
      B. stride(from: 10, to: 2, by: -2)
      C. stride(from: 2, through: 10, by: 2)
      D. stride(from: 2, to: 10, by: 2)

      Solution

      1. Step 1: Identify counting down with inclusion

        Counting down from 10 to 2 means the step is negative (-2). Including 2 means using through.
      2. Step 2: Match syntax to requirements

        Only stride(from: 10, through: 2, by: -2) matches counting down with inclusion of 2.
      3. Final Answer:

        stride(from: 10, through: 2, by: -2) -> Option A
      4. Quick Check:

        Use 'through' to include end, negative step for countdown [OK]
      Hint: Use 'through' to include end; negative step for countdown [OK]
      Common Mistakes:
      • Using 'to' instead of 'through' when including the end
      • Using positive step when counting down
      • Swapping start and end values
      3. What is the output of the following Swift code?
      for i in stride(from: 0, to: 5, by: 2) {
          print(i)
      }
      medium
      A. 0 2 4
      B. 0 2 4 6
      C. 0 2 4 5
      D. 2 4

      Solution

      1. Step 1: Analyze the stride parameters

        The loop starts at 0, goes up to but excludes 5, stepping by 2.
      2. Step 2: List the values printed

        Values are 0, 2, 4. It stops before reaching 5.
      3. Final Answer:

        0 2 4 -> Option A
      4. Quick Check:

        Stride 'to' excludes end, so 5 is not printed [OK]
      Hint: Remember 'to' excludes end value in stride loops [OK]
      Common Mistakes:
      • Including the end value 5 mistakenly
      • Adding an extra step beyond the end
      • Confusing step size with end value
      4. Identify the error in this Swift code snippet:
      for i in stride(from: 1, through: 10, by: 0) {
          print(i)
      }
      medium
      A. Using 'through' instead of 'to' is invalid syntax.
      B. Step value cannot be zero; it causes a runtime error.
      C. Start value must be less than end value for positive step.
      D. The loop will run infinitely without errors.

      Solution

      1. Step 1: Check the step parameter

        The step is zero, which is invalid because it causes no progress in the loop.
      2. Step 2: Understand the effect of zero step

        A zero step causes a runtime error or infinite loop because the loop never advances.
      3. Final Answer:

        Step value cannot be zero; it causes a runtime error. -> Option B
      4. Quick Check:

        Step must not be zero in stride [OK]
      Hint: Step cannot be zero; always non-zero positive or negative [OK]
      Common Mistakes:
      • Thinking 'through' is invalid syntax
      • Assuming zero step means step of 1
      • Ignoring runtime errors caused by zero step
      5. You want to create a Swift loop that prints all odd numbers from 1 to 15 inclusive, but only those greater than 5. Which stride and condition combination achieves this?
      hard
      A. for i in stride(from: 1, to: 15, by: 2) { if i >= 5 { print(i) } }
      B. for i in stride(from: 5, to: 15, by: 2) { print(i) }
      C. for i in stride(from: 1, through: 15, by: 2) { if i >= 5 { print(i) } }
      D. for i in stride(from: 1, through: 15, by: 2) { if i > 5 { print(i) } }

      Solution

      1. Step 1: Identify stride to generate odd numbers 1 to 15 inclusive

        Using stride(from: 1, through: 15, by: 2) generates 1,3,5,...,15 including 15.
      2. Step 2: Filter numbers greater than 5

        The condition if i > 5 prints only numbers greater than 5, i.e., 7,9,11,13,15.
      3. Final Answer:

        for i in stride(from: 1, through: 15, by: 2) { if i > 5 { print(i) } } -> Option D
      4. Quick Check:

        Stride with 'through' includes 15; condition filters >5 [OK]
      Hint: Use 'through' to include end; filter inside loop for conditions [OK]
      Common Mistakes:
      • Using 'to' excludes 15, missing last number
      • Incorrect condition filtering numbers equal to 5
      • Starting stride at 5 misses odd numbers less than 5
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard