Example: If-then-else
If-then-else statements are the controlling structures in each program. The most simplest form is:
a <- 5.0
b <- 10.0
if (a < b) {
print("a is smaller than b")
}
## [1] "a is smaller than b"
Such an if-statement can be extended by n if-else statements and - optionally - an else-statement. To illustrate this, we start with another if-statement as the one above but include it later:
if (a < b/2) {
print("a is much smaller than b")
} else if (a < b) {
print("a is smaller than b")
} else if (a == b) {
print("a equals b")
}
## [1] "a is smaller than b"
In such a structure, the first if-statment is evaluated. If it is true, all following else-if- (or else-)statements are skiped and the execution continues below the decission structure.
The above example would not print anything if a is larger than b. For this case, other else-if-statements could be used but if no differentiation should be made for any case of a larger than b, this can also be solved by a final else-statement.
a <- 15.0
b <- 10.0
if (a < b/2) {
print("a is much smaller than b")
} else if (a < b) {
print("a is smaller than b")
} else if (a == b) {
print("a equals b")
} else {
print("a is larger than b.")
}
## [1] "a is larger than b."
Of course, boolean expressions could also be used within such structures:
c <- 20.0
if (a < b & a == c) {
print("a is smaller than b and equal to c")
} else if (a > b & a == c) {
print("a is larger than b and equal to c")
} else {
print("a non-equal to c.")
}
## [1] "a non-equal to c."
The above examples document if-statements which are executed if the condition is
true since this is the default action for something like a < b
. Of course,
one can also check if a condition is false:
test <- a < b
if (test == FALSE) {
print("a is larger than b")
} else {
print("a is smaller than or equal b.")
}
## [1] "a is larger than b"