Bird
Raised Fist0
Rubyprogramming~10 mins

Upto and downto methods in Ruby - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print numbers from 1 to 5 using upto method.

Ruby
1.[1](5) { |i| puts i }
Drag options to blanks, or click blank then click option'
Atimes
Bdownto
Cupto
Deach
Attempts:
3 left
💡 Hint
Common Mistakes
Using downto instead of upto will count downwards.
Using times or each will not work directly on a number.
2fill in blank
medium

Complete the code to print numbers from 5 down to 1 using downto method.

Ruby
5.[1](1) { |i| puts i }
Drag options to blanks, or click blank then click option'
Adownto
Btimes
Ceach
Dupto
Attempts:
3 left
💡 Hint
Common Mistakes
Using upto instead of downto will count upwards.
Using times or each will not work directly on a number.
3fill in blank
hard

Fix the error in the code to print numbers from 3 up to 7.

Ruby
3.[1](7) { |num| puts num }
Drag options to blanks, or click blank then click option'
Aeach
Bupto
Cdownto
Dtimes
Attempts:
3 left
💡 Hint
Common Mistakes
Using downto will not print anything because 3 is less than 7.
Using each or times on a number is incorrect.
4fill in blank
hard

Fill both blanks to create a hash with keys from 1 to 4 and values counting down from 4 to 1.

Ruby
result = { [1].[2](1) { |i| [i, 5 - i] } }
Drag options to blanks, or click blank then click option'
A1
B4
Cdownto
Dupto
Attempts:
3 left
💡 Hint
Common Mistakes
Using upto instead of downto will count upwards.
Starting from 1 instead of 4 will reverse keys and values.
5fill in blank
hard

Fill all three blanks to create a hash with keys from 'a' to 'c' and values from 1 up to 3.

Ruby
letters = ('a'..'c').to_a
numbers = 1.[1](3).to_a
result = { [2].zip([3]).to_h }
Drag options to blanks, or click blank then click option'
Aupto
Bletters
Cnumbers
Ddownto
Attempts:
3 left
💡 Hint
Common Mistakes
Using downto instead of upto for numbers.
Mixing letters and numbers in wrong order.

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