Control {base} | R Documentation

## Control Flow

### Description

These are the basic control-flow constructs of the R language. They function in much the same way as control statements in any algol-like language.

### Usage

    if(cond) expr
    if(cond) cons.expr  else  alt.expr
    for(var in seq) expr
    while(cond) expr
    repeat expr
    break
    next

### Details

Note that `expr` and `cons.expr`, etc, in the Usage section above means an expression in a formal sense. This is either a simple expression or a so called compound expression, usually of the form `{ expr1 ; expr2 }`.

Note that it is a common mistake to forget putting braces (`{ .. }`) around your statements, e.g., after `if(..)` or `for(....)`. In particular, you should not have a newline between `}` and `else` to avoid a syntax error in entering a `if ... else` construct at the keyboard or via `source`. For that reason, one (somewhat extreme) attitude of defensive programming uses braces always, e.g., for `if` clauses.

The index `seq` in a `for` loop is evaluated at the start of the loop; changing it subsequently does not affect the loop.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

### See Also

`Syntax` for the basic R syntax and operators, `Paren` for parentheses and braces; further, `ifelse`, `switch`.

### Examples

    for(i in 1:5) print(1:i)
    for(n in c(2,5,10,20,50)) {
       x <- rnorm(n)
       cat(n,":", sum(x^2),"\n")
    }

[Package Contents]