Bird
Raised Fist0
Rubyprogramming~5 mins

Upto and downto methods in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the upto method do in Ruby?
The upto method counts from a starting number up to an ending number, running a block of code for each number in that range.
Click to reveal answer
beginner
How does the downto method work in Ruby?
The downto method counts down from a starting number to an ending number, running a block of code for each number in that range.
Click to reveal answer
beginner
Example: What will this code print?
5.upto(7) { |n| puts n }
It will print:
5
6
7
Because upto counts from 5 up to 7, printing each number.
Click to reveal answer
beginner
Example: What will this code print?
3.downto(1) { |n| puts n }
It will print:
3
2
1
Because downto counts down from 3 to 1, printing each number.
Click to reveal answer
beginner
Can upto and downto be used without a block?
No, both methods require a block to tell Ruby what to do with each number in the count. Without a block, they do nothing.
Click to reveal answer
What does 2.upto(4) { |n| puts n } print?
A2 3 4
B4 3 2
C2 4
DNothing
Which method counts down from a number to a smaller number?
Aupto
Btimes
Cdownto
Deach
What happens if you call 5.upto(3) { |n| puts n }?
APrints 5, 4, 3
BPrints nothing
CPrints 3, 4, 5
DRaises an error
Which of these is true about downto?
AIt counts up
BIt can be used without a block
CIt only works with strings
DIt requires a block
What will 1.upto(1) { |n| puts n } print?
A1
BNothing
C1 2
DError
Explain how the upto method works and give a simple example.
Think about counting forward like climbing stairs.
You got /3 concepts.
    Describe the difference between upto and downto methods.
    One goes up, the other goes down.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the Ruby method 5.upto(8) do?
      easy
      A. Counts from 5 down to 8, excluding 8
      B. Counts from 8 down to 5, including both 8 and 5
      C. Counts from 5 up to 8, including both 5 and 8
      D. Counts from 8 up to 5, excluding 5

      Solution

      1. Step 1: Understand the upto method

        The upto method counts upwards from the starting number to the ending number, including both.
      2. Step 2: Apply to the example 5.upto(8)

        This means it counts 5, 6, 7, 8 in order.
      3. Final Answer:

        Counts from 5 up to 8, including both 5 and 8 -> Option C
      4. Quick Check:

        upto counts up = A [OK]
      Hint: Remember: upto counts up, downto counts down [OK]
      Common Mistakes:
      • Confusing upto with downto
      • Thinking it excludes the last number
      • Assuming it counts down instead of up
      2. Which of the following is the correct syntax to count down from 10 to 7 using downto in Ruby?
      easy
      A. 10.downto(7) { |i| puts i }
      B. 10.upto(7) { |i| puts i }
      C. 7.downto(10) { |i| puts i }
      D. 7.upto(10) { |i| puts i }

      Solution

      1. Step 1: Identify correct method for counting down

        To count down from 10 to 7, use downto starting at 10 and ending at 7.
      2. Step 2: Check syntax correctness

        10.downto(7) { |i| puts i } correctly counts down and prints each number.
      3. Final Answer:

        10.downto(7) { |i| puts i } -> Option A
      4. Quick Check:

        Count down syntax = C [OK]
      Hint: downto starts at bigger number, ends at smaller [OK]
      Common Mistakes:
      • Using upto instead of downto for counting down
      • Reversing start and end numbers
      • Missing the block syntax
      3. What is the output of this Ruby code?
      sum = 0
      3.upto(5) { |i| sum += i }
      puts sum
      medium
      A. 12
      B. 15
      C. 9
      D. Error

      Solution

      1. Step 1: Understand the loop range

        3.upto(5) iterates over 3, 4, 5.
      2. Step 2: Calculate sum of values

        sum = 0 + 3 + 4 + 5 = 12.
      3. Final Answer:

        12 -> Option A
      4. Quick Check:

        3 + 4 + 5 = 12 [OK]
      Hint: Add all numbers from start to end inclusive [OK]
      Common Mistakes:
      • Adding only start and end numbers
      • Confusing upto with downto
      • Forgetting to include the last number
      4. Identify the error in this Ruby code:
      5.upto(3) { |i| puts i }
      medium
      A. Syntax error due to wrong method usage
      B. No output because start is greater than end
      C. Infinite loop occurs
      D. Outputs numbers from 5 down to 3

      Solution

      1. Step 1: Analyze the upto method behavior

        upto counts up from start to end. Here start=5, end=3, which is invalid for counting up.
      2. Step 2: Determine output

        Since 5 is already greater than 3, the block does not run and no output is produced.
      3. Final Answer:

        No output because start is greater than end -> Option B
      4. Quick Check:

        upto with start > end = no output [OK]
      Hint: upto does nothing if start > end, no error [OK]
      Common Mistakes:
      • Expecting output when start > end
      • Thinking it counts down automatically
      • Assuming syntax error occurs
      5. Using downto, how can you create an array of even numbers counting down from 10 to 2?
      hard
      A. arr = [] 2.upto(10) { |i| arr << i if i.even? }
      B. arr = [] 2.downto(10) { |i| arr << i if i.even? }
      C. arr = [] 10.upto(2) { |i| arr << i if i.even? }
      D. arr = [] 10.downto(2) { |i| arr << i if i.even? }

      Solution

      1. Step 1: Choose correct method for counting down

        To count down from 10 to 2, use downto starting at 10 and ending at 2.
      2. Step 2: Filter even numbers inside the block

        Use if i.even? to add only even numbers to the array.
      3. Final Answer:

        arr = [] 10.downto(2) { |i| arr << i if i.even? } -> Option D
      4. Quick Check:

        downto + even check = B [OK]
      Hint: Use downto with condition inside block to filter [OK]
      Common Mistakes:
      • Using upto instead of downto for counting down
      • Reversing start and end numbers
      • Not filtering even numbers correctly
      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