Boolean Expression
Take note of the precedence rules on p. 113
Be careful when mixing arithmetic and Boolean connectives. C++ is happy to treat numbers are Boolean values and vice versa, but it might not be the way that you want it to happen. All numbers except 0 are treated as true, while 0 is treated as false. This can trip you up in an expression like !value>5. The way C++ processes this is to first apply the ! (the "not" operator) to value. If value was anything other than 0, value is considered true, so value would evaluate to false. But now we want to ask "Is false > 5?" To make sense of this, C++ converts false back to a number (in this case, 0), and asks "Is 0 > 5?" The answer, of course, is "no", so !value>5 evaluates to false for any non-zero value of "value". (It also evaluates to false if value is zero, so !value>5 turns out to be a fancy way of saying "false".
Nested if-else statement
Multiway if-else statement
Controlling expression
We'll assume that "size" is a character variable which has been given a value already.
switch(size) { case 's': case 'S': cout << "You want more than that, don't you?\n"; size = 'M'; break; case 'm': case 'M': cout << "A large is only $0.30 more!\n"; size = 'L'; break; case 'l': case 'L': cout << "You are clearly a person of taste.\n"; break; default: cout << "I did not understand you, but I will\n" << "assume that you wanted a large.\n"; size = 'L'; break; }
We will assume that n is an integer which has already been given some value.
int factorial=1 for(int i=1; i <= n; i++) factorial = factorial * i;
When you are nesting or creating multiway if-else statements, braces are your friends.
Do not follow standard indenting for multiway or deeply-nested if-else statements. You get nested too deep too fast. See the first few pages of this section for examples.
Don't forget the break statements in switch constructions! You can end up executing the commands corresponding to several alternatives you didn't want.
It is good practice to include a default option in switch constructions.
A break command may be used to terminate a loop abruptly.
If you have a loop running inside another loop, a break command exits the inner loop, not the larger one that the inner one was a part of.