The most common control structure, in any programming language, is the conditional. This is a way of telling the computer to conditionally execute some code: to execute it only if some condition is satisfied. The condition is an expression—if it evaluates to any value other than false or nil, then the condition is satisfied.

Ruby has a rich vocabulary for expressing conditionals. The syntax choices are described in the subsections that follow. When writing Ruby code, you can choose the one that seems most elegant for the task at hand.


The most straightforward of the conditionals is if. In its simplest form, it looks like this:

if expression

The code between if and end is executed if (and only if) the expression evaluates to something other than false or nil. The code must be separated from the expression with a newline or semicolon or the keyword then.[5] Here are two ways to write the same simple conditional:

# If x is less than 10, increment it
if x < 10                     # newline separator
  x += 1
if x < 10 then x += 1 end     # then separator

You can also use then as the separator token, and follow it with a newline. Doing so makes your code robust; it will work even if the newline is subsequently removed:

if x < 10 then
  x += 1

Programmers who are used to C, or languages whose syntax is derived from C, should note two important things about Ruby’s if statement:

  • Parentheses are not required (and typically not used) around the conditional expression. The newline, semicolon, ...

Get The Ruby Programming Language now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.