Bird
Raised Fist0
Rubyprogramming~20 mins

Implicit return (last expression) in Ruby - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Ruby Return Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Ruby method?
Consider this Ruby method. What will it return when called with calculate(5)?
Ruby
def calculate(x)
  y = x * 2
  y + 3
end

calculate(5)
A10
B8
Cnil
D13
Attempts:
2 left
💡 Hint
Remember, Ruby methods return the value of the last expression automatically.
❓ Predict Output
intermediate
2:00remaining
What does this Ruby method return?
Look at this method and tell what it returns when called with greet('Alice').
Ruby
def greet(name)
  message = "Hello, " + name
  message.upcase
end

greet('Alice')
A"HELLO, ALICE"
B"hello, alice"
Cnil
D"Hello, Alice"
Attempts:
2 left
💡 Hint
The last expression is message.upcase, which changes the string to uppercase.
🔧 Debug
advanced
2:00remaining
Why does this method return nil?
This method is supposed to return the doubled value of num, but it returns nil. Why?
Ruby
def double(num)
  result = num * 2
  puts result
end

double(4)
ABecause <code>num</code> is not passed to the method
BBecause <code>puts</code> returns nil and it is the last expression in the method
CBecause <code>result</code> is not assigned correctly
DBecause the method has no return statement
Attempts:
2 left
💡 Hint
Check what puts returns in Ruby.
🧠 Conceptual
advanced
2:00remaining
What value does this method return?
Given this method, what is the return value when called with status_check(true)?
Ruby
def status_check(flag)
  if flag
    "Success"
  else
    "Failure"
  end
end

status_check(true)
Atrue
B"Failure"
C"Success"
Dnil
Attempts:
2 left
💡 Hint
The last expression executed depends on the condition.
❓ Predict Output
expert
2:00remaining
What is the output of this Ruby code?
What does this method return when called with process(3)?
Ruby
def process(n)
  n.times do |i|
    return i if i == 2
  end
  10
end

process(3)
A2
B3
C10
Dnil
Attempts:
2 left
💡 Hint
The method uses an explicit return inside a loop.

Practice

(1/5)
1. What does Ruby return from a method if there is no explicit return statement?
easy
A. The value of the last expression evaluated in the method
B. Always nil
C. The first expression evaluated in the method
D. An error occurs

Solution

  1. Step 1: Understand Ruby method return behavior

    Ruby methods automatically return the value of the last expression evaluated if no explicit return is used.
  2. Step 2: Apply this to the question

    Since no explicit return is given, the method returns the last expression's value.
  3. Final Answer:

    The value of the last expression evaluated in the method -> Option A
  4. Quick Check:

    Implicit return = last expression value [OK]
Hint: Remember: Ruby returns last expression automatically [OK]
Common Mistakes:
  • Thinking Ruby returns nil by default
  • Assuming explicit return is always needed
  • Confusing first and last expression return
2. Which of the following Ruby method definitions correctly uses implicit return?
easy
A. def add(a, b) a + b end
B. def add(a, b) return a + b puts 'done' end
C. def add(a, b) puts a + b end
D. def add(a, b) a + b; return end

Solution

  1. Step 1: Check each method for implicit return usage

    def add(a, b) a + b end returns the last expression a + b implicitly without return.
  2. Step 2: Analyze other options

    def add(a, b) return a + b puts 'done' end uses explicit return, def add(a, b) puts a + b end returns nil because puts returns nil, def add(a, b) a + b; return end has return with no value, returning nil.
  3. Final Answer:

    def add(a, b) a + b end -> Option A
  4. Quick Check:

    Implicit return = last expression value [OK]
Hint: Implicit return means last line's value is returned [OK]
Common Mistakes:
  • Confusing puts output with return value
  • Using return unnecessarily
  • Returning nil unintentionally
3. What is the output of this Ruby code?
def greet(name)
  message = "Hello, "+name
  message.upcase
end

puts greet("Alice")
medium
A. "Hello, Alice"
B. Error
C. nil
D. "HELLO, ALICE"

Solution

  1. Step 1: Trace method execution

    The method creates message as "Hello, Alice" then calls message.upcase which returns "HELLO, ALICE".
  2. Step 2: Determine return value

    Since message.upcase is the last expression, it is implicitly returned.
  3. Final Answer:

    "HELLO, ALICE" -> Option D
  4. Quick Check:

    Last expression returned = "HELLO, ALICE" [OK]
Hint: Last expression value is returned automatically [OK]
Common Mistakes:
  • Assuming original message is returned
  • Thinking puts output is return value
  • Confusing method return with print output
4. Identify the error in this Ruby method related to implicit return:
def multiply(x, y)
  product = x * y
  puts product
end

result = multiply(3, 4)
puts result
medium
A. Method returns product correctly
B. Syntax error due to missing return
C. Method returns nil because last expression is puts
D. Method raises runtime error

Solution

  1. Step 1: Analyze last expression in method

    The last expression is puts product, which returns nil.
  2. Step 2: Understand method return value

    Because Ruby returns the last expression implicitly, the method returns nil, not the product.
  3. Final Answer:

    Method returns nil because last expression is puts -> Option C
  4. Quick Check:

    Implicit return = last expression value (puts returns nil) [OK]
Hint: puts returns nil, so method returns nil if last line is puts [OK]
Common Mistakes:
  • Expecting method to return printed value
  • Thinking missing return causes syntax error
  • Confusing output with return value
5. Given this method, what will be the return value?
def check_value(val)
  if val > 10
    "High"
  else
    "Low"
  end
end

check_value(10)
hard
A. "High"
B. "Low"
C. nil
D. Error

Solution

  1. Step 1: Evaluate the condition with val = 10

    Since 10 is not greater than 10, the else branch executes returning "Low".
  2. Step 2: Understand implicit return in if-else

    The last evaluated expression is the string "Low", which is implicitly returned by the method.
  3. Final Answer:

    "Low" -> Option B
  4. Quick Check:

    Implicit return of last expression in if-else = "Low" [OK]
Hint: If-else returns last expression evaluated implicitly [OK]
Common Mistakes:
  • Assuming val > 10 includes 10
  • Expecting explicit return needed
  • Confusing nil with else return
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