This chapter is about iteration, which is the ability to run a block of statements repeatedly. We saw a kind of iteration, using recursion, in “Recursion”. We saw another kind, using a `for`

loop, in “Simple Repetition”. In this chapter we’ll see yet another kind, using a `while`

statement. But first I want to say a little more about variable assignment.

As you may have discovered, it is legal to make more than one assignment to the same variable. A new assignment makes an existing variable refer to a new value (and stop referring to the old value):

`julia>`

`x`

`=`

`5`

`5`

`julia>`

`x`

`=`

`7`

`7`

The first time we display `x`

, its value is `5`

; the second time, its value is `7`

.

Figure 7-1 shows what *reassignment* looks like in a state diagram.

At this point I want to address a common source of confusion. Because Julia uses the equals sign (`=`

) for assignment, it is tempting to interpret a statement like `a = b`

as a mathematical proposition of equality; that is, the claim that `a`

and `b`

are equal. But this interpretation is wrong.

First, equality is a symmetric relationship and assignment is not. For example, in mathematics, if $a=7$ then $7=a$. But in Julia, the statement `a = 7`

is legal and `7 = a`

is not.

Also, in mathematics, a proposition of equality is either true or false for all time. If $a=b$ now, then $a$ will always equal $b$. In ...

Start Free Trial

No credit card required