The break statement enables program execution to exit the switch construct. Without it, execution continues evaluating the following case statements.
Use break to exit any loop containing it. Using return exits the function module, too.
Ideally a while expression should evaluate to a Boolean value true or false. false is zero. A condition that does not evaluate to zero is considered to evaluate to true. Because -1 is not zero, the while condition evaluates to true and the loop is executed. If you want the loop to be executed only for positive numbers, write an expression while(Integer>0). This rule is true for all conditional statements and loops.
No, while always needs an accompanying conditional expression.
Yes, big ones! while(exp); is already a valid yet empty while loop due to the null statement (the semicolon) following the while, even if it is followed by a statement block. The statement block in question is executed once, but outside of the loop. Exercise caution when copying and pasting code.
You indent not for sake of the compiler, but for the sake of other programmers (humans) who might need to read or understand your code.
You avoid it to keep your code from getting unintuitive and expensive to maintain.
See the code in the solution to Exercise 1 that uses the decrement operator.
for (int counter=0; counter==10; ++counter)
cout << counter << " ";
As the condition in the for statement is not satisfied, the loop won't execute even once and the cout statement it contains is never executed.
Program execution doesn't end. That might not be bad, per se, for there are while(true) and for(;;) loops that do the same; however, a recursive function call consumes more and more stack space, which is finite and runs out, eventually causing an application crash due to a stack overflow.