Special Forms of Assignment
Particularly when you write procedural programs in
Mathematica, you will often need to modify the value of a particular variable repeatedly. You can always do this by constructing the new value and explicitly performing an assignment such as

.
Mathematica, however, provides special notations for incrementing the values of variables, and for some other common cases.
| i++ | increment the value of i by  |
| i-- | decrement i |
| ++i | pre-increment i |
| --i | pre-decrement i |
| i+=di | add di to the value of i |
| i-=di | subtract di from i |
| x*=c | multiply x by c |
| x/=c | divide x by c |
Modifying values of variables.
This assigns the value

to the variable

.
| Out[1]= |  |
This increments the value of

by

.
| Out[2]= |  |
The value of

has been modified.
| Out[3]= |  |
This sets

to

, multiplies its value by

, then gives the final value of

.
| Out[4]= |  |
The value of

is the value of
before the increment is done.
The value of

is the value of
after the increment.
| x=y=value | assign the same value to both x and y |
| {x,y}={value1,value2} | assign different values to x and y |
| {x,y}={y,x} | interchange the values of x and y |
Assigning values to several variables at a time.
This assigns the value

to

and

to

.
| Out[7]= |  |
This interchanges the values of

and

.
| Out[8]= |  |
Now

has value

.
| Out[9]= |  |
And

has value

.
| Out[10]= |  |
You can use assignments to lists to permute values of variables in any way.
| Out[11]= |  |
When you write programs in
Mathematica, you will sometimes find it convenient to take a list, and successively add elements to it. You can do this using the functions
PrependTo and
AppendTo.
| PrependTo[v,elem] | prepend elem to the value of v |
| AppendTo[v,elem] | append elem |
| v={v,elem} | make a nested list containing elem |
Assignments for modifying lists.
This assigns the value of

to be the list

.
| Out[12]= |  |
This appends the element

to the value of

.
| Out[13]= |  |
Now the value of

has been modified.
| Out[14]= |  |
Although
AppendTo
is always equivalent to
v=Append[v, elem], it is often a convenient notation. However, you should realize that because of the way
Mathematica stores lists, it is usually less efficient to add a sequence of elements to a particular list than to create a nested structure that consists, for example, of lists of length 2 at each level. When you have built up such a structure, you can always reduce it to a single list using
Flatten.
This sets up a nested list structure for

.
| Out[15]= |  |
You can use
Flatten to unravel the structure.
| Out[16]= |  |