0% found this document useful (0 votes)
9 views53 pages

C++ Control Structures Explained

The document discusses control structures in C++ programming, specifically selection structures using if, if...else, and switch statements. It covers relational and logical operators used to form Boolean expressions to evaluate conditions. Examples are provided to demonstrate one-way and two-way selection, nested if statements, comparing values, and avoiding confusion between assignment (=) and equality (==) operators. The objectives are to learn how to use selection control structures to conditionally execute code based on logical expressions.

Uploaded by

Rashed Malkawi
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views53 pages

C++ Control Structures Explained

The document discusses control structures in C++ programming, specifically selection structures using if, if...else, and switch statements. It covers relational and logical operators used to form Boolean expressions to evaluate conditions. Examples are provided to demonstrate one-way and two-way selection, nested if statements, comparing values, and avoiding confusion between assignment (=) and equality (==) operators. The objectives are to learn how to use selection control structures to conditionally execute code based on logical expressions.

Uploaded by

Rashed Malkawi
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

C++ Programming:

From Problem Analysis


to Program Design, Fourth Edition

Chapter 4: Control Structures I (Selection)


Objectives
In this chapter, you will:
• Learn about control structures
• Examine relational and logical operators
• Explore how to form and evaluate logical
(Boolean) expressions
• Discover how to use the selection control
structures if, if...else, and switch in a
program
• Learn to use the assert function to terminate a
program
C++ Programming: From Problem Analysis to Program Design, Fourth Edition 2
Control Structures

• A computer can proceed:


− In sequence
− Selectively (branch) - making a choice
− Repetitively (iteratively) - looping
• Some statements are executed only if certain
conditions are met
• A condition is met if it evaluates to true

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 3


Control Structures (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 4


Relational Operators

• A condition is represented by a logical


(Boolean) expression that can be true or
false
• Relational operators:
− Allow comparisons
− Require two operands (binary)
− Evaluate to true or false

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 5


Relational Operators (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 6


Relational Operators and Simple
Data Types
• You can use the relational operators with all
three simple data types:
− 8 < 15 evaluates to true
− 6 != 6 evaluates to false
− 2.5 > 5.8 evaluates to false
− 5.9 <= 7.5 evaluates to true

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 7


Comparing Floating-Point
Numbers for Equality
• Comparison of floating-point numbers for
equality may not behave as you would expect
− Example:
• 1.0 == 3.0/7.0 + 2.0/7.0 + 2.0/7.0
evaluates to false
• Why? 3.0/7.0 + 2.0/7.0 + 2.0/7.0 =
0.99999999999999989
• Solution: use a tolerance value
− Example: fabs(x – y) < 0.000001

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 8


Comparing Characters

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 9


Relational Operators and the
string Type
• Relational operators can be applied to strings
• Strings are compared character by character,
starting with the first character
• Comparison continues until either a mismatch is
found or all characters are found equal
• If two strings of different lengths are compared and
the comparison is equal to the last character of the
shorter string
− The shorter string is less than the larger string

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 10


Relational Operators and the
string Type (continued)
• Suppose we have the following declarations:
string str1 = "Hello";
string str2 = "Hi";
string str3 = "Air";
string str4 = "Bill";
string str4 = "Big";

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 11


Relational Operators and the
string Type (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 12


Relational Operators and the
string Type (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 13


Relational Operators and the
string Type (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 14


Logical (Boolean) Operators and
Logical Expressions
• Logical (Boolean) operators enable you to
combine logical expressions

unary
binary
binary

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 15


Logical (Boolean) Operators and
Logical Expressions (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 16


Order of Precedence

• Relational and logical operators are


evaluated from left to right
• The associativity is left to right
• Parentheses can override precedence

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 19


Order of Precedence (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 20


Order of Precedence (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 21


Order of Precedence (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 22


Order of Precedence (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 23


Short-Circuit Evaluation

• Short-circuit evaluation: evaluation of a logical


expression stops as soon as the value of the
expression is known
• Example:
(age >= 21) || ( x == 5) //Line 1
(grade == 'A') && (x >= 7) //Line 2

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 24


int Data Type and Logical
(Boolean) Expressions
• Earlier versions of C++ did not provide built-in
data types that had Boolean values
• Logical expressions evaluate to either 1 or 0
− The value of a logical expression was stored
in a variable of the data type int
• You can use the int data type to manipulate
logical (Boolean) expressions

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 25


The bool Data Type and Logical
(Boolean) Expressions
• The data type bool has logical (Boolean)
values true and false
• bool, true, and false are reserved words
• The identifier true has the value 1
• The identifier false has the value 0

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 26


Logical (Boolean) Expressions

• Logical expressions can be unpredictable


• The following expression appears to represent
a comparison of 0, num, and 10:
0 <= num <= 10
• It always evaluates to true because 0 <=
num evaluates to either 0 or 1, and 0 <= 10
is true and 1 <= 10 is true
• A correct way to write this expression is:
0 <= num && num <= 10
C++ Programming: From Problem Analysis to Program Design, Fourth Edition 27
Selection: if and if...else

• One-Way Selection
• Two-Way Selection
• Compound (Block of) Statements
• Multiple Selections: Nested if
• Comparing if...else Statements with a
Series of if Statements

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 28


Selection: if and if...else
(continued)
• Using Pseudocode to Develop, Test, and
Debug a Program
• Input Failure and the if Statement
• Confusion Between the Equality Operator
(==) and the Assignment Operator (=)
• Conditional Operator (?:)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 29


One-Way Selection

• The syntax of one-way selection is:

• The statement is executed if the value of the


expression is true
• The statement is bypassed if the value is
false; program goes to the next statement
• if is a reserved word

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 30


One-Way Selection (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 31


One-Way Selection (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 32


One-Way Selection (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 34


Two-Way Selection
• Two-way selection takes the form:

• If expression is true, statement1 is


executed; otherwise, statement2 is executed
− statement1 and statement2 are any C++
statements
• else is a reserved word

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 35


Two-Way Selection (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 36


Two-Way Selection (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 37


Two-Way Selection (continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 38


Compound (Block of) Statement

• Compound statement (block of statements):

• A compound statement is a single statement

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 39


Compound (Block of) Statement
(continued)
if (age > 18)
{
cout << "Eligible to vote." << endl;
cout << "No longer a minor." << endl;
}
else
{
cout << "Not eligible to vote." << endl;
cout << "Still a minor." << endl;
}

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 40


Multiple Selections: Nested if

• Nesting: one control statement in another


• An else is associated with the most recent
if that has not been paired with an else

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 41


Multiple Selections: Nested if
(continued)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 43


Comparing if…else Statements
with a Series of if Statements

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 44


Confusion Between == and =

• C++ allows you to use any expression that


can be evaluated to either true or false as
an expression in the if statement:
if (x = 5)
cout << "The value is five." << endl;
• The appearance of = in place of ==
resembles a silent killer
− It is not a syntax error
− It is a logical error

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 45


Conditional Operator (?:)

• Conditional operator (?:) takes three arguments


− Ternary operator
• Syntax for using the conditional operator:
expression1 ? expression2 : expression3
• If expression1 is true, the result of the
conditional expression is expression2
− Otherwise, the result is expression3

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 46


switch Structures

• switch structure: alternate


to if-else
• switch (integral)
expression is evaluated first
• Value of the expression
determines which
corresponding action is
taken
• Expression is sometimes
called the selector

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 47


switch Structures (continued)

• One or more statements may follow a case


label
• Braces are not needed to turn multiple
statements into a single compound statement
• The break statement may or may not appear
after each statement
• switch, case, break, and default are
reserved words

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 49


Summary

• Control structures alter normal control flow


• Most common control structures are selection
and repetition
• Relational operators: ==, <, <=, >, >=, !=
• Logical expressions evaluate to 1 (true) or 0
(false)
• Logical operators: ! (not), && (and), || (or)

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 51


Summary (continued)

• Two selection structures: one-way selection


and two-way selection
• The expression in an if or if...else
structure is usually a logical expression
• No stand-alone else statement in C++
− Every else has a related if
• A sequence of statements enclosed between
braces, { and }, is called a compound
statement or block of statements
C++ Programming: From Problem Analysis to Program Design, Fourth Edition 52
Summary (continued)

• Using assignment in place of the equality


operator creates a semantic error
• switch structure handles multiway selection
• break statement ends switch statement
• Use assert to terminate a program if certain
conditions are not met

C++ Programming: From Problem Analysis to Program Design, Fourth Edition 53

You might also like