1: //selection.cpp
2: //C++ code examples illustrating decision-making constructs
4: //How to format a simple if-statement:
5: if (condition)
6: statement;
8: //If "statement" is very short, the following is also permissible:
9: if (condition) statement;
12: //How to format a simple if...else-statement:
13: if (condition)
14: statement1;
15: else
16: statement2;
18: //If both statements are very short, either of the following
19: //is also permissible:
20: if (condition) statement1; else statement2;
22: if (condition) statement1;
23: else statement2;
25: //How to format an if...else-statement with multi-statement bodies:
26: if (condition)
27: {
28: statement1_1;
29: statement1_2;
30: }
31: else
32: {
33: statement2_1;
34: statement2_2;
35: statement2_3;
36: }
38: //How to format a simple nested if-statement
39: if (condition1)
40: statement1;
41: else if (condition2)
42: statement2;
43: else if (condition3)
44: statement3;
45: else
46: statement4;
48: //How to format nested if-statement
49: //with one (or more) multi-statement bodies:
50: if (condition1)
51: statement1;
52: else if (condition2)
53: {
54: statement2_1;
55: statement2_1;
56: }
57: else if (condition3)
58: statement3;
59: else
60: statement4;
62: //How to format a switch-statement:
63: switch (expression)
64: {
65: case LABEL1:
66: statement1;
67: break;
68: case LABEL2:
69: case LABEL3:
70: case LABEL4:
71: statement2;
72: break;
73: case LABEL5:
74: statement3;
75: break;
76: case LABEL6:
77: statement4;
78: break;
79: default: //optional
80: defaultStatement;
81: break;
82: }
83: //Note that a "break;" immediately prior to the closing brace of
84: //a switch is unnecessary, but is recommended as a "best practice".
86: //Also permissible is this format, which saves horizontal whitespace
87: //and is the default in at least some IDEs, such as Visual C++:
88: switch (expression)
89: {
90: case LABEL1:
91: statement1;
92: break;
93: case LABEL2:
94: case LABEL3:
95: case LABEL4:
96: statement2;
97: break;
98: case LABEL5:
99: statement3;
100: break;
101: case LABEL6:
102: statement4;
103: break;
104: default: //optional
105: defaultStatement;
106: break;
107: }
108: //Note that a "break;" immediately prior to the closing brace of
109: //a switch is unnecessary, but is recommended as a "best practice".
111: //How to format a particularly simple switch-statement:
112: switch (expression)
113: {
114: case LABEL1: statement1; break;
115: case LABEL2: statement2; break;
116: case LABEL3: statement3; break;
117: case LABEL4: statement4; break;
118: default: defaultStatement; break;
119: }