Tags: %TAGME{ tpaction="" web="KenyonCpp" tag="" }% view all tags

# Term

• Boolean Expression

# Tips

• 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".

# Terms

• Nested if-else statement

• Multiway if-else statement

• Controlling expression

# Syntax

• 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;
```

# Tips

• 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.

Topic revision: r1 - 2015-09-10 - JimSkon

 Home KenyonCpp Web View Edit Account
Copyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback