conditional (if)
Objectives
Define control flow for when a Ruby program is executed.
Implement control flow in different ways.
Use
if
,else
, andelsif
statements.
Video
<iframe width="560" height="315" src="https://www.youtube.com/embed/dcNgPOZCaBk" frameborder="0" allowfullscreen></iframe>
Define Control Flow
A control flow construct is a language feature which disrupts the normal progression to the next statement and conditionally or unconditionally branches to another location in source code. ββ Robert Klemme
In other words, control flow lets you tell your program what code to execute conditionally. As humans, we actually enact flow control every day. For instance, if you are hungry, you will go and get a snack. Otherwise, you'll stay put and continue to read this awesome readme.
Control flow is an important part of Ruby programming and web development. In the context of a web application, for example, you can easily think of content or functionality on a website you've visited that is only available to a user if that user is logged in.
Implementing Control Flow
There are several ways to tell your program to conditionally execute certain code, the basic forms of which are:
if
,else
, andelsif
statements,case
statements,loops.
In this reading, we're going to discuss the first group of these "conditional" statements: if
, else
, and elsif
.
Use IRB, copying the provided code snippets, to follow along in this lesson.
if
Statements
if
StatementsOne of the most common ways to enact control flow is the if
statement. Whatever block of code that follows the if
statement will get evaluatedβi.e. read and enacted by the computer. If this evaluation of the if
statement results in true
, then the code through to the associated end
statement will run.
Let's look at a few examples:
The code above will print "5 is greater than 2" because the
if
statement evaluates astrue
.
Meanwhile:
The code above will not print anything because the
if
statement evaluates asfalse
.
So what if we want our program to print something else when the if
condition evaluates as false
?
The else
Keyword
else
KeywordTo accomplish this, we can follow an if
statement with an else
statement. Take a look:
An else
statement sets a "default" condition for when your if
statement's conditional evaluates as false
. Every condition that doesn't evaluate as true
will instead pass through the else
statement.
Further Examples
So far, we've seen if
statements that rely on the explicit use of the true
and false
booleans. Let's look at some examples that require a little more thought.
Example 1
The code above will print
Giraffes have no vocal cords.
Since6 + 3
equals9
(i.e.9
is equal to9
), theif
statement's conditional evaluates astrue
.
Top-tip: Remember that the comparative operator ==
("double-equals") is used to check equality. This is distinct from the assignment operator =
("single-equals"), which is used to set the value of a variable.
Example 2
The code above will not print anything because
6 + 3
, which is equivalent to9
, is not less than5
, making theif
statement's conditional evaluate asfalse
.
Example 3
elsif
Statements
elsif
StatementsSometimes, we want to control the flow of our program based on more than one condition. For example, if I am hungry, then I will get a snack. If I am thirsty, then I will get a drink of water. Otherwise, I will stay here and continue learning more about control flow.
We can add additional layers of complexity to our if
and else
statements by using the elsif
keyword.
Let's add an elsif
statement to Example 3 from above:
We can cascade as many elsif
statements as we wish, however elsif
statements can only be used following an if
statement, and must precede the associated else
statement (if used).
That's all for nowβwe'll discuss case
statements and looping in upcoming lessons.
View Control Flow on Learn.co and start learning to code for free.
Last updated