Answer from cs61c-ew (Joo-Rak Son 16103505) for Question 1 C's loop statements (while, for, and do-while) are in fact not absolutely needed. All loops can be achieved through if and goto statements. For example, while (!x) { a++; } can be done like this: if (!x) { LOOP: a++ if (!x) goto LOOP; } The same applies for "for" (which simply initializes and increments on top of while) and "do-while" (which only checks condition at the end). I believe that the C designers included them for (1) it's easier to read and straight-forwarded to program, and (2) it reduces possibility of bugs because the code is simpler. In conclusion, convenience for the programmers and the fancy-ness of the code were of the main concern.