Answer from cs61c-cp (Raymond Chou 16078389) for Question 1 I believe not all of them are needed; do while (since it's just another version of while) and gotos (since they're rarely used) can be dropped. Furthermore, while can also be dropped because you can always use the try statement. do-while statments were created so that you can make sure the while statement executes at least once. gotos can be helpful during error-handling and also shorten code finally, i guess while was included because it's more flexible than the try statement. In other words, these statments were included to allow the programmer more flexibility and ease of writing code.