# Control Structures

• Allow you to encode decisions about running code:

• run code if a certain condition is met: `if`, `if-else`

• run code multiple times: loops. `for()`, `while()`, `repeat {}`. Use `break`, `next` to stop or skip.

# if

if this condition is true, then carry out this task

Use:

``````if(cond) expr
``````
• cond: a logical vector of length one.

• expr: code to be evaluated if cond == TRUE.

Example:

``````x <- 1
if(x < 10){print('x is small')}
``````
`````` "x is small"
``````

# if-else

if this condition is true, carry out task A, otherwise carry out task B

Use:

``````    if (cond) { expr } else { expr }
``````

Example:

``````x <- 25

if(x < 10){
print('x is small')
} else {
print('x is big')
}
``````
`````` "x is big"
``````

# Loops

Loops allow you to run chunks of code multiple times.

The loop will run until a certain condition has been reached.

Use `for()`, `while()`, `repeat()` to construct loops.

`next` and `break` are used to modify the loop.

# for()

The for loop progresses along a vector (`seq`), each element in turn (`var`).

Use:

``````for(var in seq) { expr }
``````

Example:

``````    x <- c(1,2,3,4,5)

for(i in 1:5) {
print(x[i])
}
``````
`````` 1
 2
 3
 4
 5
``````

# while()

The while loop runs while a condition is met.

Use:

``````while(cond) { expr }
``````

Example:

``````    x <- 1

while(x < 4) {
x <- x + 1
print(x)
}
``````
`````` 2
 3
 4
``````

# repeat

The repeat loop runs over a piece of code infinitely.

We need to use the `break` command within it to stop the loop.

Use:

``````repeat { expr }
``````

Example:

``````    x <- 1

repeat {
print(x)
x <- x + 1
if(x > 5) break
}
``````
`````` 1
 2
 3
 4
 5
``````

# next

The control `next` jumps to the next cycle in the loop, without completing the current one.

Example

``````    x <- 1:4
for (i in x) {
if (i == 2) {
next
}
print(i)
}
``````
`````` 1
 3
 4
``````

# Control Structures

• Allow you to encode decisions about running code:

• run code if a certain condition is met: `if`, `if-else`

• run code multiple times: loops. `for()`, `while()`, `repeat {}`. Use `break`, `next` to stop or skip.

• SWIRL lesson covers for loops