## for Loops

• A for loop repeats a chunk of code many times, once for each element in a set of input.
for (value in that) {
this
}
• The that object should be a set of objects (often a vector of numbers or character strings).
• 1:10
• 1:length(x)
• 1:nrow(x)
• c("hello", "this", "is", "a", "vector", "of", "strings")

## for Loops

• The value symbol in a for loop acts like an argument in a function.
• The for loop will
• create an object named value
• and assign it a new value on each run of the loop.
• The code in your loop can access this value by calling the value object.

## for Loops

for (value in c("My", "first", "for", "loop")) {
print("one run")
}
## [1] "one run"
## [1] "one run"
## [1] "one run"
## [1] "one run"

## for Loops

for (value in c("My", "second", "for", "loop")) {
print(value)
}
## [1] "My"
## [1] "second"
## [1] "for"
## [1] "loop"

## for Loops

• Example: What will be the value of a after the loop?
a <- 100

for (a in 1:5) {
print(a)
}

a

## Exercise 1

• Task: Write a for loop to compute the sum of 5 numbers that are randomly selected from 1 to 100 with replacement.

## Exercise 1

• Task: Write a for loop to compute the sum of 5 numbers that are randomly selected from 1 to 100 with replacement.

• First, let’s generate the 5 random numbers!

• Second, write the for loop.

## Working with for loop

• To save output from a for loop, you must write the loop so that it saves its own output as it runs.
• What that means:
• Create an empty vector or list before you run the loop.
• Use the for loop to fill up the vector or list.
• When the for loop is finished, you’ll be able to access the vector or list, which will now have all of your results.

## Exercise 2

• From a given list of fruits, select only the ones that have 6 or fewer letters.
fruits <- c("apple", "pineapple", "watermelon", "orange", "peach", "plum",
"honeydew", "banana", "kiwi", "papaya", "grapes", "strawberry",
"blueberry", "blackberry")

## while Loops

• A while loop reruns a chunk while a certain condition remains TRUE.
while (condition) {
code
}
• while will rerun condition (a logical test) at the start of each loop:
• If condition evaluates to TRUE, while will run the code between its braces.
• If condition evaluates to FALSE, while will finish the loop.

## while Loops

• Why might condition change from TRUE to FALSE?
• The code inside the loop changes the certain values which change the result of condition. (We will look at an example next)
• If the code has no relationship to the condition, a while loop will run until you stop it.
• Called infinite loop.

## while Loops

cash <- 20
n <- 0

while (cash > 0) {
cash <- cash - 1
n <- n + 1
}

n
## [1] 20

## Exercise 3

• Remember the game King of Hearts from Lab02?
• It costs $1 to play this game each time. • If we win a jackpot, we gain$10.
• Let’s say we start with \$20!
• How long can we play until we run out of money?

## repeat Loops

• The repeat loops repeat a chunk of code until you tell them to stop (by hitting Escape) or until they encounter the command break, which will stop the loop.

• We can use a repeat loop to recreata a loop for the example above.