Scala has only a handful of built-in control structures including if, while, for, try, match, and function calls. These control structures can be used in both an imperative style by modifying program state, as well as a functional style by returning new values. For example, a for loop can iterate over a sequence and return a new collection with the results of the body expression.