In computer programming, the if statement allows us to create a decision making program.
A decision making program runs one block of code under a condition and another block of code under different conditions. For example,
- If age is greater than 18, allow the person to vote.
- If age is not greater than 18, don't allow the person to vote.
R if Statement
The syntax of an if statement is:
if (test_expression) {
# body of if
}
Here, the test_expression
is a boolean expression. It returns either True
or False
. If the test_expression
is
- True - body of the if statement is executed
- False - body of the if statement is skipped
Example: R if Statement
x <- 3
# check if x is greater than 0
if (x > 0) {
print("The number is positive")
}
print("Outside if statement")
Output
[1] "The number is positive" [1] "Outside if statement"
In the above program, the test condition x > 0 is true. Hence, the code inside parenthesis is executed.
Note: If you want to learn more about test conditions, visit R Booleans Expression.
R if...else Statement
We can also use an optional else statement with an if statement. The syntax of an if...else statement is:
if (test_expression) {
# body of if statement
} else {
# body of else statement
}
The if statement evaluates the test_expression inside the parentheses.
If the test_expression is True,
- body of
if
is executed - body of
else
is skipped
If the test_expression is False
- body of
else
is executed - body of
if
is skipped
Example: R if...else Statement
age <- 15
# check if age is greater than 18
if (age > 18) {
print("You are eligible to vote.")
} else {
print("You cannot vote.")
}
Output
[1] "You cannot vote."
In the above statement, we have created a variable named age. Here, the test expression is
age > 18
Since age is 16, the test expression is False
. Hence, code inside the else
statement is executed.
If we change the variable to another number. Let's say 31.
age <- 31
Now, if we run the program, the output will be:
[1] "You are eligible to vote."
Example: Check Negative and Positive Number
x <- 12
# check if x is positive or negative number
if (x > 0) {
print("x is a positive number")
} else {
print("x is a negative number")
}
Output
[1] "x is a positive number"
Here, since x > 0
evaluates to TRUE
, the code inside the if
block gets executed. And, the code inside the else block is skipped.
R if...else if...else Statement
If you want to test more than one condition, you can use the optional else if
statement along with your if...else
statements. The syntax is:
if(test_expression1) {
# code block 1
} else if (test_expression2){
# code block 2
} else {
# code block 3
}
Here,
- If test_expression1 evaluates to
True
, the code block 1 is executed. - If test_expression1 evaluates to
False
, then test_expression2 is evaluated.- If test_expression2 is
True
, code block 2 is executed. - If test_expression2 is
False
, code block 3 is executed.
- If test_expression2 is
Example: R if...else if...else Statement
x <- 0
# check if x is positive or negative or zero
if (x > 0) {
print("x is a positive number")
} else if (x < 0) {
print("x is a negative number")
} else {
print("x is zero")
}
Output
[1] "x is zero"
In the above example, we have created a variable named x with the value 0. Here ,we have two test expressions:
if (x > 0)
- checks if x is greater than 0else if (x < 0)
- checks if x is less than 0
Here, both the test conditions are False
. Hence, the statement inside the body of else
is executed.
Nested if...else Statements in R
You can have nested if...else
statements inside if...else
blocks in R. This is called nested if...else statement.
This allows you to specify conditions inside conditions. For example,
x <- 20
# check if x is positive
if (x > 0) {
# check if x is even or odd
if (x %% 2 == 0) {
print("x is a positive even number")
} else {
print("x is a positive odd number")
}
# execute if x is not positive
} else {
# check if x is even or odd
if (x %% 2 == 0) {
print("x is a negative even number")
} else {
print("x is a negative odd number")
}
}
Output
[1] "x is a positive even number"
In this program, the outer if...else
block checks whether x is positive or negative. If x is greater than 0, the code inside the outer if
block is executed.
Otherwise, the code inside the outer else
block is executed.
if (x > 0) {
... .. ...
} else {
... .. ...
}
The inner if...else
block checks whether x is even or odd. If x is perfectly divisible by 2, the code inside the inner if
block is executed. Otherwise, the code inside the inner else
block is executed.
if (x %% 2 == 0) {
... .. ...
} else {
... .. ...
}