Like any language, Ruby provides case statements to test multiple conditions. It is similar to the if else if else conditional statement.

It is similar to Switch in another programming language.

How to write a switch case in Ruby?

Switch executes expression and matches result with case constants and executes case block statements.

Here is the syntax of case conditions in Ruby.

case conditional_expression 
   when condition1
      // statements; 
   when condition2
    // statements

conditional_expression is evaluated to value, value is compared with expression in a when and matched when statements are executed.

conditional_expression can be a variable or ruby expression or enum values.

if no matching case is found, the else is executed.

expressions in when are single or multiple expressions

Here is an example case where example

number =  19
case number
when 0 .. 9
   puts "Single-digit"
when 10 .. 99
   puts "Double Digits"
when 100 .. 999
   puts "three digits"
when 1000 .. 9999
   puts "four digits"
   puts "five digits or more"


Double Digits

The above is similar to if else if else if else end conditional expressions.

Important points

  • Ruby does not have a fallback or default case
  • There is no break keyword
  • Expression in the case is optional
  • Expression in the case can be a variable, constant literal or ruby expression
  • Expression in when can be a ruby expression or multiple expressions using logical operator