EDS 221 Day 3 PM

Loops


August 12th, 2025

Loops let you repeat yourself


For example, print each value in a vector

corals <- c("Porites", "Pocillopora", "Acropora")
for (c in corals) {
  print(c)
}
[1] "Porites"
[1] "Pocillopora"
[1] "Acropora"

Loops let you repeat yourself


It’s common to loop over the indices of a vector.

corals <- c("Porites", "Pocillopora", "Acropora")
for (i in 1:length(corals)) {
  print(corals[i])
}
[1] "Porites"
[1] "Pocillopora"
[1] "Acropora"

What does this loop make?


Let’s break down this loop.

fibonacci <- integer(6)
fibonacci[1:2] <- 1
for (i in 3:length(fibonacci)) {
  fibonacci[i] <- fibonacci[i - 1] + fibonacci[i - 2]
}
fibonacci
[1] 1 1 2 3 5 8

Parts of a loop


A loop has three main parts

  • Iterator i
  • Sequence 3:length(fibonacci)
  • Body { ... }
fibonacci <- integer(6)
fibonacci[1:2] <- 1
for (i in 3:length(fibonacci)) {
  fibonacci[i] <- fibonacci[i - 1] + fibonacci[i - 2]
}
fibonacci
[1] 1 1 2 3 5 8

Parts of a loop


A loop has three main parts

The iterator changes value each time through the loop.

fibonacci <- integer(6)
fibonacci[1:2] <- 1
for (i in 3:length(fibonacci)) {
  fibonacci[i] <- fibonacci[i - 1] + fibonacci[i - 2]
}
fibonacci
[1] 1 1 2 3 5 8

Parts of a loop


A loop has three main parts

The sequence is what the iterator takes on values from.

fibonacci <- integer(6)
fibonacci[1:2] <- 1
for (i in 3:length(fibonacci)) {
  fibonacci[i] <- fibonacci[i - 1] + fibonacci[i - 2]
}
fibonacci
[1] 1 1 2 3 5 8

Parts of a loop


A loop has three main parts

The body is what the loop repeatedly does.

fibonacci <- integer(6)
fibonacci[1:2] <- 1
for (i in 3:length(fibonacci)) {
  fibonacci[i] <- fibonacci[i - 1] + fibonacci[i - 2]
}
fibonacci
[1] 1 1 2 3 5 8