# channelflow.org

### Site Tools

gibson:teaching:fall-2014:math445:lecture9-diary

# Math 445 lecture 9: for and while loops

Today's main topic is loop constructions. Loops perform a given action repeatedly. There are two main flavors of loops: the `for` loop and the `while` loop.

## for loops

A `for` loop repeats a given action a fixed number of times. The general form of a `for` loop is

```for value = vector
action
end```

The `action` will be performed `length(vector)` times, with `value` set to each element of `vector` successively. It's probably clearer to see this by example.

example 1: Print the numbers from 1 to 10.

```for n = 1:10
fprintf('The value of n is %i\n', n);
end```

example 2: Print the numbers from 10 to 0.

```for n = 10:-1:0
fprintf('%i ');
end
fprintf('blast off!\n');```

example 3: Write a `mysum` function that computes the sum of the elements of a vector.

```function s = mysum(x)
% return the sum of the components of vector x

for i = 1:length(x)  % loop over all elements in x
s = s + x(i);      % add x(i) to the previously computed partial sum
end

end```

example 4: Write a function that computes the factorial of n.

```function p = factorial(n)
% return the factorial of n (assume n is a positive integer)

for k = 1:n          % loop k over all integers from 1 to n
p = p*k;           % multiply previous partial product by k
end

end```

The for loop is probably the single most important programming construct in numerical mathematics.

## while loops

A `while` loop repeats a given action as long as its condition is true. The general form is

```while condition
action
end```

In order for the `while` loop to terminate, the action must modify variables in the condition. For example, the factorial function above could also be written this way…