In programming, loops are used to repeat a block of code as long as the specified condition is satisfied. Loops help you to save time, avoid repeatable blocks of code, and write cleaner code.
In R, there are three types of loops:
- while loops
- for loops
- repeat loops
R while Loop
while
loops are used when you don't know the exact number of times a block of code is to be repeated. The basic syntax of while
loop in R is:
while (test_expression) {
# block of code
}
- Here, the
test_expression
is first evaluated. - If the result is
TRUE
, then the block of code inside thewhile
loop gets executed. - Once the execution is completed, the
test_expression
is evaluated again and the same process is repeated until thetest_expression
evaluates toFALSE
. - The
while
loop will terminate when the boolean expression returnsFALSE
.
Example 1: R while Loop
Let's look at a program to calculate the sum of the first ten natural numbers.
# variable to store current number
number = 1
# variable to store current sum
sum = 0
# while loop to calculate sum
while(number <= 10) {
# calculate sum
sum = sum + number
# increment number by 1
number = number + 1
}
print(sum)
Output
[1] 55
Here, we have declared two variables: number and sum. The test_condition
inside the while
statement is number <= 10
.
This means that the while
loop will continue to execute and calculate the sum as long as the value of number is less than or equal to 10
.
Example 2: while Loop With break Statement
The break
statement in R can be used to stop the execution of a while
loop even when the test expression is TRUE
. For example,
number = 1
# while loop to print numbers from 1 to 5
while(number <= 10) {
print(number)
# increment number by 1
number = number + 1
# break if number is 6
if (number == 6) {
break
}
}
Output
[1] 1 [1] 2 [1] 3 [1] 4 [1] 5
In this program, we have used a break
statement inside the while
loop, which breaks the loop as soon as the condition inside the if
statement is evaluated to TRUE
.
if (number == 6) {
break
}
Hence, the loop terminates when the number variable equals to 6
. Therefore, only the numbers 1 to 5 are printed.
Example 3: while Loop With next Statement
You can use the next
statement in a while
loop to skip an iteration even if the test condition is TRUE
. For example,
number = 1
# while loop to print odd number between 1 to 10
while(number <= 10) {
# skip iteration if number is even
if (number %% 2 == 0) {
number = number + 1
next
}
# print number if odd
print(number)
# increment number by 1
number = number + 1
}
Output
[1] 1 [1] 3 [1] 5 [1] 7 [1] 9
This program only prints the odd numbers in the range of 1 to 10. To do this, we have used an if
statement inside the while
loop to check if number is divisible by 2.
Here,
- if number is divisible by 2, then its value is simply incremented by 1 and the iteration is skipped using the
next
statement. - if number is not divisible by 2, then the variable is printed and its value is incremented by 1.