Bird
Raised Fist0
Rubyprogramming~5 mins

Conditional assignment (||=) in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the operator ||= do in Ruby?
It assigns a value to a variable only if that variable is currently nil or false. It means "assign if not already set."
Click to reveal answer
beginner
Given name ||= "Guest", what happens if name is already "Alice"?
The value of name stays "Alice" because ||= only assigns if name is nil or false.
Click to reveal answer
beginner
Why is ||= useful in Ruby programs?
It helps set default values without overwriting existing ones, making code cleaner and easier to read.
Click to reveal answer
intermediate
What will be the output of this Ruby code?
count = nil
count ||= 10
count ||= 20
puts count
The output will be 10. The first ||= assigns 10 because count is nil. The second ||= does nothing because count is already 10 (not nil or false).
Click to reveal answer
intermediate
Can ||= assign a value if the variable is false?
Yes. ||= treats both nil and false as "not set" and will assign the new value in either case.
Click to reveal answer
What does variable ||= value do in Ruby?
AAssigns value only if variable is nil or false
BAlways assigns value to variable
CAssigns value only if variable is true
DAssigns value only if variable is a number
If score = 0, what will score ||= 10 do?
AAssign 10 to score
BRaise an error
CKeep score as 0
DAssign nil to score
Which values cause ||= to assign the new value?
AOnly nil
BBoth nil and false
CAny value
DOnly false
What is a common use of ||= in Ruby?
ATo set default values
BTo multiply numbers
CTo delete variables
DTo compare strings
What will this code print?
flag = false
flag ||= true
puts flag
Afalse
Bnil
Cerror
Dtrue
Explain how the ||= operator works in Ruby and give a simple example.
Think about setting a variable only if it doesn't have a useful value yet.
You got /3 concepts.
    Describe a situation where using ||= can make your Ruby code cleaner.
    Consider when you want to assign a value only if none exists.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Ruby operator ||= do when used like x ||= 10?
      easy
      A. Always assigns 10 to x, replacing any value
      B. Assigns 10 to x only if x is true
      C. Assigns 10 to x only if x is nil or false
      D. Throws an error if x is already assigned

      Solution

      1. Step 1: Understand the ||= operator

        The operator ||= assigns the right side value only if the left side variable is nil or false.
      2. Step 2: Apply to example x ||= 10

        If x is nil or false, it becomes 10; otherwise, it keeps its current value.
      3. Final Answer:

        Assigns 10 to x only if x is nil or false -> Option C
      4. Quick Check:

        Conditional assignment = Assign if nil/false [OK]
      Hint: ||= sets value only if variable is nil or false [OK]
      Common Mistakes:
      • Thinking ||= always assigns the value
      • Confusing ||= with simple assignment =
      • Assuming ||= assigns when variable is true
      2. Which of the following is the correct syntax to assign 5 to variable a only if a is nil or false?
      easy
      A. a ||= 5
      B. a =|| 5
      C. a =| 5
      D. a =|= 5

      Solution

      1. Step 1: Identify correct operator syntax

        The correct Ruby operator for conditional assignment is ||=, not any variation with single or misplaced symbols.
      2. Step 2: Match syntax to options

        Only a ||= 5 uses ||= correctly as a ||= 5.
      3. Final Answer:

        a ||= 5 -> Option A
      4. Quick Check:

        Correct syntax = a ||= 5 [OK]
      Hint: Remember ||= has two vertical bars before equals [OK]
      Common Mistakes:
      • Using single | or misplaced symbols
      • Confusing with assignment =
      • Typing extra or missing characters
      3. What will be the output of this Ruby code?
      a = nil
      b = 20
      a ||= 10
      b ||= 30
      puts a
      puts b
      medium
      A. 10\n30
      B. nil\n30
      C. nil\n20
      D. 10\n20

      Solution

      1. Step 1: Evaluate a ||= 10 when a is nil

        Since a is nil, a ||= 10 assigns 10 to a.
      2. Step 2: Evaluate b ||= 30 when b is 20

        Since b is already 20 (truthy), b ||= 30 does not change b.
      3. Final Answer:

        10 20 -> Option D
      4. Quick Check:

        nil replaced, truthy kept = 10 and 20 [OK]
      Hint: ||= changes only nil or false variables [OK]
      Common Mistakes:
      • Assuming b changes to 30
      • Thinking nil stays nil after ||= 10
      • Mixing up output order
      4. Find the error in this Ruby code snippet:
      count = 0
      count ||= 5
      puts count
      medium
      A. No error; output is 0
      B. Syntax error due to ||= usage
      C. Output is 5 instead of 0
      D. Runtime error because count is zero

      Solution

      1. Step 1: Understand value of count before ||=

        count is 0, which is not nil or false in Ruby (0 is truthy).
      2. Step 2: Apply count ||= 5

        Since count is truthy (0), count ||= 5 does not change it.
      3. Final Answer:

        No error; output is 0 -> Option A
      4. Quick Check:

        0 is truthy, ||= keeps original value [OK]
      Hint: Remember 0 is truthy in Ruby, ||= won't overwrite [OK]
      Common Mistakes:
      • Thinking 0 is false and gets replaced
      • Expecting syntax or runtime error
      • Confusing Ruby truthiness with other languages
      5. Given this code:
      settings = { theme: nil, font_size: 12 }
      settings[:theme] ||= 'dark'
      settings[:font_size] ||= 14
      puts settings[:theme]
      puts settings[:font_size]

      What is the output and why?
      hard
      A. nil\n14 because theme is nil and font_size is replaced
      B. dark\n12 because theme was nil and font_size was truthy
      C. dark\n14 because both keys were nil or false
      D. nil\n12 because ||= does not work on hashes

      Solution

      1. Step 1: Check initial values in settings hash

        settings[:theme] is nil, settings[:font_size] is 12 (truthy).
      2. Step 2: Apply conditional assignment

        settings[:theme] ||= 'dark' sets theme to 'dark' because it was nil.
        settings[:font_size] ||= 14 does not change font_size because 12 is truthy.
      3. Final Answer:

        dark 12 -> Option B
      4. Quick Check:

        Nil replaced, truthy kept = dark and 12 [OK]
      Hint: ||= sets defaults only if current value is nil or false [OK]
      Common Mistakes:
      • Assuming 12 is replaced by 14
      • Thinking ||= doesn't work on hash values
      • Confusing nil with false values
      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