for 循环

控制流 / 循环

sum10 <- 0
for (i in 1:10) {
  sum10 <- sum10 + i
}
# sum10 = 55

# The loop variable outlives the loop
last_i <- i
# last_i = 10

# Sequences to loop over
first_five <- seq_len(5)
# first_five = 1 2 3 4 5
evens <- seq(0, 6, by = 2)
# evens = 0 2 4 6
down <- seq(10, 2, by = -2)
# down = 10 8 6 4 2

# Trap: 1:n with n = 0 is c(1, 0)
n <- 0
steps <- 0
for (i in 1:n) {
  steps <- steps + 1
}
# steps = 2

# seq_len(0) is empty: no passes
safe_steps <- 0
for (i in seq_len(n)) {
  safe_steps <- safe_steps + 1
}
# safe_steps = 0

cat("sum10 =", sum10, "\n")
cat("last_i =", last_i, "\n")
cat("first_five =", first_five, "\n")
cat("evens =", evens, "\n")
cat("down =", down, "\n")
cat("steps =", steps, "\n")
cat("safe_steps =", safe_steps, "\n")