A nice UNIX question

Explain this behavior:

kant:~$ while (true); do ps uwax | grep "ps uwax"; echo -; done
rudyw    29800  0.0  0.0  2960  956 pts/7    R    15:44   0:00 ps uwax
-
rudyw    29803  0.0  0.0  2960  956 pts/7    R    15:44   0:00 ps uwax
-
rudyw    29806  0.0  0.0  2960  956 pts/7    R    15:44   0:00 ps uwax
-
rudyw    29809  0.0  0.0  2960  956 pts/7    R    15:44   0:00 ps uwax
rudyw    29810  0.0  0.0  4480  636 pts/7    S    15:44   0:00 grep ps uwax
-
rudyw    29812  0.0  0.0  2960  956 pts/7    R    15:44   0:00 ps uwax
rudyw    29813  0.0  0.0  4480  636 pts/7    S    15:44   0:00 grep ps uwax
-
rudyw    29815  0.0  0.0  2960  956 pts/7    R    15:44   0:00 ps uwax
rudyw    29816  0.0  0.0  4480  636 pts/7    S    15:44   0:00 grep ps uwax
-
rudyw    29818  0.0  0.0  2960  956 pts/7    R    15:44   0:00 ps uwax
-
rudyw    29821  0.0  0.0  2960  956 pts/7    R    15:44   0:00 ps uwax
-