100% found this document useful (1 vote)
611 views

Week 4 - Conditional Statements

This document discusses conditional statements in C++. It covers if-else statements, logical operators, relational operators, nested if statements, the switch statement, and common errors. Selection structures allow choosing between alternatives using conditions that evaluate to true or false. Braces create blocks to scope variables and statements.

Uploaded by

Sailesh Chand
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
611 views

Week 4 - Conditional Statements

This document discusses conditional statements in C++. It covers if-else statements, logical operators, relational operators, nested if statements, the switch statement, and common errors. Selection structures allow choosing between alternatives using conditions that evaluate to true or false. Braces create blocks to scope variables and statements.

Uploaded by

Sailesh Chand
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 31

Topic 3:

Conditional Statements

1
Objectives

• In this chapter, you will learn about:


– Selection criteria
– The if-else statement
– Nested if statements
– The switch statement
– Program testing
– Common programming errors

C++ for Engineers and Scientists, Fourth Edition 2


Selection Criteria

• if-else statement: Implements a decision


structure for two alternatives
Syntax:
if (condition)
statement executed if condition is true;
else
statement executed if condition is false;

C++ for Engineers and Scientists, Fourth Edition 3


Selection Criteria (continued)

• The condition is evaluated to its numerical value:


– A non-zero value is considered to be true
– A zero value is considered to be false
• The else portion is optional
– Executed only if the condition is false
• The condition may be any valid C++ expression

C++ for Engineers and Scientists, Fourth Edition 4


Relational Operators

• Relational expression: Compares two operands or


expressions using relational operators

Table 4.1 C++’s Relational Operators

C++ for Engineers and Scientists, Fourth Edition 5


Relational Operators (continued)

• Relational expressions are evaluated to a numerical


value of 1 or 0 only:
– If the value is 1, the expression is true
– If the value is 0, the expression is false
• char values are automatically coerced to int values
for comparison purposes
• Strings are compared on a character by character basis
– The string with the first lower character is considered
smaller

C++ for Engineers and Scientists, Fourth Edition 6


Relational Operators (continued)

• Examples of string comparisons

C++ for Engineers and Scientists, Fourth Edition 7


Logical Operators

• AND (&&): Condition is true only if both expressions


are true
• OR (||): Condition is true if either one or both of
the expressions is true
• NOT (!): Changes an expression to its opposite
state; true becomes false, false becomes true

C++ for Engineers and Scientists, Fourth Edition 8


Logical Operators (continued)

Table 4.2 Operator Precedence and Associativity

C++ for Engineers and Scientists, Fourth Edition 9


A Numerical Accuracy Problem

• Comparing single and double precision values for


equality (==) can lead to errors because values are
stored in binary
• Instead, test that the absolute value of the difference
is within an acceptable range
– Example:
abs(operandOne – operandTwo) < 0.000001

C++ for Engineers and Scientists, Fourth Edition 10


The if-else Statement

• if-else performs instructions based on the


result of a comparison
• Place statements on separate lines for readability
• Syntax:

C++ for Engineers and Scientists, Fourth Edition 11


The if-else
Statement (cont’d)

Figure 4.2
The if-else flowchart

C++ for Engineers and Scientists, Fourth Edition 12


The if-else Statement
(continued)

C++ for Engineers and Scientists, Fourth Edition 13


Compound Statements

• Compound statement: A sequence of single statements


contained between braces
– Creates a block of statements
– A block of statements can be used anywhere that a single statement
is legal
– Any variable declared within a block is usable only within that block
• Scope: The area within a program where a variable can be
used
– A variable’s scope is based on where the variable is declared

C++ for Engineers and Scientists, Fourth Edition 14


Block Scope (continued)

C++ for Engineers and Scientists, Fourth Edition 15


One-Way Selection
• One-way selection: An if
statement without the
optional else portion

Figure 4.3 A one-way selection if


statement

C++ for Engineers and Scientists, Fourth Edition 16


Problems Associated with the
if-else Statement
• Common problems with if-else statements:
– Misunderstanding what an expression is
– Using the assignment operator (=) instead of the
relational operator (==)

C++ for Engineers and Scientists, Fourth Edition 17


Nested if Statements

• if-else statement can contain any valid C++


statement, including another if-else
• Nested if statement: an if-else statement
completely contained within another if-else
• Use braces to block code, especially when inner if
statement does not have its own else

C++ for Engineers and Scientists, Fourth Edition 18


Nested if Statements (continued)

Figure 4.4a
Nested within the
if part

C++ for Engineers and Scientists, Fourth Edition 19


The if-else Chain
• if-else chain: A nested if statement occurring in the
else clause of the outer if-else
• If any condition is true, the corresponding statement is
executed and the chain terminates
• Final else is only executed if no conditions were true
– Serves as a catch-all case
• if-else chain provides one selection from many possible
alternatives

C++ for Engineers and Scientists, Fourth Edition 20


The if-else Chain (continued)

Figure 4.4b
Nested within the
else part

C++ for Engineers and Scientists, Fourth Edition 21


The if-else Chain (continued)
• General form of an if-else chain

C++ for Engineers and Scientists, Fourth Edition 22


The switch Statement

• switch statement: Provides for one selection from many


alternatives
• switch keyword starts the statement
– Is followed by the expression to be evaluated
• case keyword identifies a value to be compared to the
switch expression
– When a match is found, statements in this case block are executed
• All further cases after a match is found are executed unless a
break statement is found

C++ for Engineers and Scientists, Fourth Edition 23


The switch Statement
(continued)
• default case is executed if no other case value
matches were found
• default case is optional

C++ for Engineers and Scientists, Fourth Edition 24


A Case Study: Solving Quadratic
Equations
• Data validation: Use defensive programming techniques to
validate user input
– Includes code to check for improper data before an attempt is made to
process it further
• Solving quadratic equations: Use the software development
procedure to solve for the roots of a quadratic equation

C++ for Engineers and Scientists, Fourth Edition 25


A Closer Look: Program Testing

• Theory: A comprehensive set of test runs would test


all combinations of input and computations, and
would reveal all errors
• Reality: There are too many combinations to test for
any program except a very simple one
• Example:
– One program with 10 modules, each with five if statements,
always called in the same order
– There are 25 paths through each module, and more than 250
paths through the program!

C++ for Engineers and Scientists, Fourth Edition 26


A Closer Look: Program Testing
(continued)
• Conclusion: there is no error-free program, only
one in which no errors have recently been
encountered

C++ for Engineers and Scientists, Fourth Edition 27


Common Programming Errors

• Using the assignment operator (=) instead of the


relational operator (==) for an equality test
• Placing a semicolon immediately after the
condition
• Assuming a structural problem with an if-else
causes the error instead of focusing on the data
value being tested
• Using nested if statements without braces to
define the structure

C++ for Engineers and Scientists, Fourth Edition 28


Summary

• Relational expressions, or conditions, are used to


compare operands
• If the relation expression is true, its value is 1; if
false, its value is 0
• Use logical operators && (AND), || (OR), and !
(NOT) to construct complex conditions
• if-else allows selection between two
alternatives

C++ for Engineers and Scientists, Fourth Edition 29


Summary (continued)

• An if expression that evaluates to 0 is false; if


non-zero, it is true
• if statements can be nested
• Chained if statement provides a multiway
selection
• Compound statement: contains any number of
individual statements enclosed in braces

C++ for Engineers and Scientists, Fourth Edition 30


Summary (continued)

• switch statement: Provides a multiway selection


• switch expression: Evaluated and compared to
each case value
– If a match is found, execution begins at that case’s
statements and continues unless a break is encountered

C++ for Engineers and Scientists, Fourth Edition 31

You might also like