SlideShare a Scribd company logo
1
Lecture 3
Control Structures
Selection: else/if and switch
2
2.1 Introduction
 Before writing a program
 Have a thorough understanding of problem
 Carefully plan your approach for solving it
 While writing a program
 Know what “building blocks” are available
 Use good programming principles
3
2.2 Algorithms
 Computing problems
 Solved by executing a series of actions in a
specific order
 Algorithm is a procedure determining
 Actions to be executed
 Order to be executed
 Example: recipe
 Program control
 Specifies the order in which statements are
executed
4
2.3 Pseudocode
 Pseudocode
 Artificial, informal language used to develop
algorithms
 Similar to everyday English
 Not executed on computers
 Used to think out program before coding
 Easy to convert into C++ program
 Only executable statements
 No need to declare variables
5
2.4 Control Structures
 Sequential execution
 Statements executed in order
 Transfer of control
 Next statement executed not next one in sequence
 3 control structures (Bohm and Jacopini)
 Sequence structure
 Programs executed sequentially by default
 Selection structures
 if, if/else, switch
 Repetition structures
 while, do/while, for
6
2.4 Control Structures
 C++ keywords
 Cannot be used as identifiers or variable names
C++ Keywords
Keywords common to the
C and C++ programming
languages
auto break case char const
continue default do double else
enum extern float for goto
if int long register return
short signed sizeof static struct
switch typedef union unsigned void
volatile while
C++ only keywords
asm bool catch class const_cast
delete dynamic_cast explicit false friend
inline mutable namespace new operator
private protected public reinterpret_cast
static_cast template this throw true
try typeid typename using virtual
wchar_t
7
2.4 Control Structures
 Flowchart
 Graphical representation of an algorithm
 Special-purpose symbols connected by arrows (flowlines)
 Rectangle symbol (action symbol)
 Any type of action
 Oval symbol
 Beginning or end of a program, or a section of code (circles)
 Single-entry/single-exit control structures
 Connect exit point of one to entry point of the next
 Control structure stacking
8
2.5 if Selection Structure
 Selection structure
 Choose among alternative courses of action
 Pseudocode example:
If student’s grade is greater than or equal to 60
Print “Passed”
 If the condition is true
 Print statement executed, program continues to next
statement
 If the condition is false
 Print statement ignored, program continues
 Indenting makes programs easier to read
 C++ ignores whitespace characters (tabs, spaces, etc.)
9
2.5 if Selection Structure
 Translation into C++
If student’s grade is greater than or equal to 60
Print “Passed”
if ( grade >= 60 )
cout << "Passed";
 Diamond symbol (decision symbol)
 Indicates decision is to be made
 Contains an expression that can be true or false
 Test condition, follow path
 if structure
 Single-entry/single-exit
10
2.5 if Selection Structure
 Flowchart of pseudocode statement
true
false
grade >= 60 print “Passed”
A decision can be made on
any expression.
zero - false
nonzero - true
Example:
3 - 4 is true
11
2.6 if/else Selection Structure
 if
 Performs action if condition true
 if/else
 Different actions if conditions true or false
 Pseudocode
if student’s grade is greater than or equal to 60
print “Passed”
else
print “Failed”
 C++ code
if ( grade >= 60 )
cout << "Passed";
else
cout << "Failed";
12
2.6 if/else Selection Structure
 Nested if/else structures
 One inside another, test for multiple cases
 Once condition met, other statements skipped
if student’s grade is greater than or equal to 90
Print “A”
else
if student’s grade is greater than or equal to 80
Print “B”
else
if student’s grade is greater than or equal to 70
Print “C”
else
if student’s grade is greater than or equal to 60
Print “D”
else
Print “F”
13
2.6 if/else Selection Structure
 Example
if ( grade >= 90 ) // 90 and above
cout << "A";
else if ( grade >= 80 ) // 80-89
cout << "B";
else if ( grade >= 70 ) // 70-79
cout << "C";
else if ( grade >= 60 ) // 60-69
cout << "D";
else // less than 60
cout << "F";
14
Importance of Curly Braces
 Print “We have a problem” if examGrade < 60
 Print “We have a real problem” if examGrade < 60 and
quizGrade < 10
 Print “Ok” if examGrade >= 60
int examGrade, quizGrade;
if (examGrade < 60)
cout << “We have a problem” << endl;
if (quizGrade < 10)
cout << “We have a real problem” << endl;
else
cout << “Ok”;
15
Exam Grade Flowchartint examGrade, quizGrade;
if (examGrade < 60)
cout << “We have a problem” << endl;
if (quizGrade < 10)
cout << “We have a real problem” << endl;
else
cout << “Ok”;
examGrade < 60
“We have a problem”
“We have a real problem”
true
quizGrade < 10
“Ok”
truefalse
16
Writing Cases
 Print “We have a problem” if examGrade < 60
 Print “We have a real problem” if examGrade < 60 and
quizGrade < 10
 Print “Ok” if examGrade >= 60
examGrade < 60 quizGrade < 10 Action
Case 1 true false “We have a problem”
Case 2 true true “We have a problem” and
“We have a real problem”
Case 3 false true/false “Ok”
17
Putting it all together
examGrade < 60 quizGrade < 10 Action
Case 1 true false “We have a problem”
Case 2 true true “We have a problem” and
“We have a real problem”
Case 3 false true/false “Ok”
int examGrade, quizGrade;
if (examGrade < 60)
System.out.println(“We have a problem”);
if (quizGrade < 10)
System.out.printl(“We have a real problem”);
else
System.out.println(“Ok”);
int examGrade, quizGrade;
if (examGrade < 60) {
cout << “We have a problem” << endl;
if (quizGrade < 10)
cout << “We have a real problem” << endl;
}
else
cout << “Ok”;
18
boolean Operators
 Combines multiple boolean expressions
 If person’s age greater than or equal to 13 and less
than 17, he can go to G and PG-13 rated movies,
but not R rated movies
 if (age >= 13 && age < 17)
cout << “You can go to G and PG-13”
<< “ rated movies, but not R” +
<< “ rated movies.”) << endl;
 boolean operators
 and - && (true if all conditions are true)
 or - || (true if one condition is true)
 not - ! (true if conditions is false)
19
Expression Combinations
operand1 operand2 operand1 && operand2
true true true
true false false
false true false
false false false
if (age >= 13 && age < 17)
cout << “You can go to G and PG-13”
<< “ rated movies, but not R” +
<< “ rated movies.” << endl;
Let age = 12
Let age = 16
Let age = 17
The && (and) operator
20
Expression Combinations
operand1 operand2 operand1 || operand2
true true true
true false true
false true true
false false false
The || (or) operator
operand !operand
true false
false true
The ! (not) operator
Example
if ( !( grade == sentinelValue ) )
cout << "The next grade is "
<< grade << endl;
Alternative:
if ( grade != sentinelValue )
cout << "The next grade is "
<< grade << endl;
21
Playing Cards
 Exercise with playing cards
 Numbers represent the rank and suit of cards
// Codes for suits
const int SPADES = 0;
const int HEARTS = 1;
const int DIAMONDS = 2;
const int CLUBS = 3;
// Codes for nonnumeric ranks
const int ACE = 1;
const int JACK = 11;
const int QUEEN = 12;
const int KING = 13;
22
Prints a Card Name
 Print “rank of suit”
 Consider just the rank part
if (rank == JACK)
cout << "Jack";
else if (rank == QUEEN)
cout << "Queen";
else if (rank == KING;
cout << "King";
else if (rank == ACE)
cout << "Ace";
else
cout << rank;
Notice:
comparing rank to
a number of
different value
23
2.16switch Multiple-Selection
Structure
 switch
 Test variable for multiple values
 Series of case labels and optional default case
switch ( variable ) {
case value1: // taken if variable == value1
statements
break; // necessary to exit switch
case value2:
case value3: // taken if variable == value2 or == value3
statements
break;
default: // taken if variable matches no other cases
statements
break;
}
24
2.16switch Multiple-Selection
Structure
true
false
.
.
.
case a case a action(s) break
case b case b action(s) break
false
false
case z case z action(s) break
true
true
default action(s)
25
Converting if/else to a switch
if (rank == JACK)
cout << "Jack";
else if (rank == QUEEN)
cout << "Queen";
else if (rank == KING;
cout << "King";
else if (rank == ACE)
cout << "Ace";
else
cout << rank;
switch (rank)
{
case JACK:
cout << "Jack";
break;
case QUEEN:
cout << "Queen";
break;
case KING:
cout << "King";
break;
case ACE:
cout << "Ace";
break;
default:
cout << rank;
}

More Related Content

PPT
03a control structures
Manzoor ALam
 
PPT
Java căn bản - Chapter5
Vince Vo
 
PPT
Selection Control Structures
PRN USM
 
PPTX
control statements of clangauge (ii unit)
Prashant Sharma
 
PPT
Chapter 1 nested control structures
Khirulnizam Abd Rahman
 
PDF
ICP - Lecture 7 and 8
Hassaan Rahman
 
PPT
Control All
phanleson
 
PPT
Control Structure in C
Neel Shah
 
03a control structures
Manzoor ALam
 
Java căn bản - Chapter5
Vince Vo
 
Selection Control Structures
PRN USM
 
control statements of clangauge (ii unit)
Prashant Sharma
 
Chapter 1 nested control structures
Khirulnizam Abd Rahman
 
ICP - Lecture 7 and 8
Hassaan Rahman
 
Control All
phanleson
 
Control Structure in C
Neel Shah
 

Viewers also liked (7)

PDF
CV Winda Gardena
Winda Gardena
 
PPT
Ch4
aamirsahito
 
PPT
Muresan valentina
k2hagen
 
PPT
Simileanu alex
k2hagen
 
PPT
Ch3
aamirsahito
 
PPT
Итоги I четерти 2015 начальная школа
MarinaDock
 
PPTX
Sistemas operativos
Carlosgl99
 
CV Winda Gardena
Winda Gardena
 
Muresan valentina
k2hagen
 
Simileanu alex
k2hagen
 
Итоги I четерти 2015 начальная школа
MarinaDock
 
Sistemas operativos
Carlosgl99
 
Ad

Similar to Ch3.1 (20)

PPTX
Control Structures, If..else, switch..case.pptx
doncreiz1
 
PPTX
Metode Perancangan Program #2 Selection and Repetition Control Structure-ITSB...
ronistgdr
 
PDF
Chap 5 c++
Widad Jamaluddin
 
PPT
Lecture#3 Algorithms and computing
NUST Stuff
 
PPT
cpphtp4_PPT_02.ppt
Suleman Khan
 
PPTX
CPP04 - Selection
Michael Heron
 
PPTX
Chapter 3 Conditional Statements&Looping (1).pptx
burkagemechu
 
PPTX
control structure
sivasankaravadivuN
 
PPT
Chapter 4 Making Decisions
GhulamHussain142878
 
PPT
Control structures in C++ Programming Language
Ahmad Idrees
 
PPTX
lesson 2.pptx
khaledahmed316
 
PDF
Selection
Jason J Pulikkottil
 
PPTX
Cs1123 5 selection_if
TAlha MAlik
 
PPTX
POLITEKNIK MALAYSIA
Aiman Hud
 
PPTX
Introduction to Selection control structures in C++
Neeru Mittal
 
PPT
for loops in C++ and their functions and applicability
ayeshaaaliasad
 
PPT
Basic concept of c++
shashikant pabari
 
PPTX
C++ lecture 02
HNDE Labuduwa Galle
 
PPTX
Lecture 1 Introduction C++
Ajay Khatri
 
PPT
Lecture 1
Mohammed Saleh
 
Control Structures, If..else, switch..case.pptx
doncreiz1
 
Metode Perancangan Program #2 Selection and Repetition Control Structure-ITSB...
ronistgdr
 
Chap 5 c++
Widad Jamaluddin
 
Lecture#3 Algorithms and computing
NUST Stuff
 
cpphtp4_PPT_02.ppt
Suleman Khan
 
CPP04 - Selection
Michael Heron
 
Chapter 3 Conditional Statements&Looping (1).pptx
burkagemechu
 
control structure
sivasankaravadivuN
 
Chapter 4 Making Decisions
GhulamHussain142878
 
Control structures in C++ Programming Language
Ahmad Idrees
 
lesson 2.pptx
khaledahmed316
 
Cs1123 5 selection_if
TAlha MAlik
 
POLITEKNIK MALAYSIA
Aiman Hud
 
Introduction to Selection control structures in C++
Neeru Mittal
 
for loops in C++ and their functions and applicability
ayeshaaaliasad
 
Basic concept of c++
shashikant pabari
 
C++ lecture 02
HNDE Labuduwa Galle
 
Lecture 1 Introduction C++
Ajay Khatri
 
Lecture 1
Mohammed Saleh
 
Ad

Recently uploaded (20)

PPTX
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
PPTX
How to Manage Leads in Odoo 18 CRM - Odoo Slides
Celine George
 
DOCX
pgdei-UNIT -V Neurological Disorders & developmental disabilities
JELLA VISHNU DURGA PRASAD
 
PPTX
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
PPTX
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
DOCX
Action Plan_ARAL PROGRAM_ STAND ALONE SHS.docx
Levenmartlacuna1
 
PPTX
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
PPTX
An introduction to Dialogue writing.pptx
drsiddhantnagine
 
PDF
Virat Kohli- the Pride of Indian cricket
kushpar147
 
PPTX
Sonnet 130_ My Mistress’ Eyes Are Nothing Like the Sun By William Shakespear...
DhatriParmar
 
PPTX
Information Texts_Infographic on Forgetting Curve.pptx
Tata Sevilla
 
PDF
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
PDF
The-Invisible-Living-World-Beyond-Our-Naked-Eye chapter 2.pdf/8th science cur...
Sandeep Swamy
 
PPTX
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
PPTX
Artificial-Intelligence-in-Drug-Discovery by R D Jawarkar.pptx
Rahul Jawarkar
 
PDF
Biological Classification Class 11th NCERT CBSE NEET.pdf
NehaRohtagi1
 
PPTX
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
PPTX
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
PPTX
BASICS IN COMPUTER APPLICATIONS - UNIT I
suganthim28
 
PPTX
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
How to Manage Leads in Odoo 18 CRM - Odoo Slides
Celine George
 
pgdei-UNIT -V Neurological Disorders & developmental disabilities
JELLA VISHNU DURGA PRASAD
 
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
Action Plan_ARAL PROGRAM_ STAND ALONE SHS.docx
Levenmartlacuna1
 
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
An introduction to Dialogue writing.pptx
drsiddhantnagine
 
Virat Kohli- the Pride of Indian cricket
kushpar147
 
Sonnet 130_ My Mistress’ Eyes Are Nothing Like the Sun By William Shakespear...
DhatriParmar
 
Information Texts_Infographic on Forgetting Curve.pptx
Tata Sevilla
 
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
The-Invisible-Living-World-Beyond-Our-Naked-Eye chapter 2.pdf/8th science cur...
Sandeep Swamy
 
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
Artificial-Intelligence-in-Drug-Discovery by R D Jawarkar.pptx
Rahul Jawarkar
 
Biological Classification Class 11th NCERT CBSE NEET.pdf
NehaRohtagi1
 
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
BASICS IN COMPUTER APPLICATIONS - UNIT I
suganthim28
 
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 

Ch3.1

  • 2. 2 2.1 Introduction  Before writing a program  Have a thorough understanding of problem  Carefully plan your approach for solving it  While writing a program  Know what “building blocks” are available  Use good programming principles
  • 3. 3 2.2 Algorithms  Computing problems  Solved by executing a series of actions in a specific order  Algorithm is a procedure determining  Actions to be executed  Order to be executed  Example: recipe  Program control  Specifies the order in which statements are executed
  • 4. 4 2.3 Pseudocode  Pseudocode  Artificial, informal language used to develop algorithms  Similar to everyday English  Not executed on computers  Used to think out program before coding  Easy to convert into C++ program  Only executable statements  No need to declare variables
  • 5. 5 2.4 Control Structures  Sequential execution  Statements executed in order  Transfer of control  Next statement executed not next one in sequence  3 control structures (Bohm and Jacopini)  Sequence structure  Programs executed sequentially by default  Selection structures  if, if/else, switch  Repetition structures  while, do/while, for
  • 6. 6 2.4 Control Structures  C++ keywords  Cannot be used as identifiers or variable names C++ Keywords Keywords common to the C and C++ programming languages auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while C++ only keywords asm bool catch class const_cast delete dynamic_cast explicit false friend inline mutable namespace new operator private protected public reinterpret_cast static_cast template this throw true try typeid typename using virtual wchar_t
  • 7. 7 2.4 Control Structures  Flowchart  Graphical representation of an algorithm  Special-purpose symbols connected by arrows (flowlines)  Rectangle symbol (action symbol)  Any type of action  Oval symbol  Beginning or end of a program, or a section of code (circles)  Single-entry/single-exit control structures  Connect exit point of one to entry point of the next  Control structure stacking
  • 8. 8 2.5 if Selection Structure  Selection structure  Choose among alternative courses of action  Pseudocode example: If student’s grade is greater than or equal to 60 Print “Passed”  If the condition is true  Print statement executed, program continues to next statement  If the condition is false  Print statement ignored, program continues  Indenting makes programs easier to read  C++ ignores whitespace characters (tabs, spaces, etc.)
  • 9. 9 2.5 if Selection Structure  Translation into C++ If student’s grade is greater than or equal to 60 Print “Passed” if ( grade >= 60 ) cout << "Passed";  Diamond symbol (decision symbol)  Indicates decision is to be made  Contains an expression that can be true or false  Test condition, follow path  if structure  Single-entry/single-exit
  • 10. 10 2.5 if Selection Structure  Flowchart of pseudocode statement true false grade >= 60 print “Passed” A decision can be made on any expression. zero - false nonzero - true Example: 3 - 4 is true
  • 11. 11 2.6 if/else Selection Structure  if  Performs action if condition true  if/else  Different actions if conditions true or false  Pseudocode if student’s grade is greater than or equal to 60 print “Passed” else print “Failed”  C++ code if ( grade >= 60 ) cout << "Passed"; else cout << "Failed";
  • 12. 12 2.6 if/else Selection Structure  Nested if/else structures  One inside another, test for multiple cases  Once condition met, other statements skipped if student’s grade is greater than or equal to 90 Print “A” else if student’s grade is greater than or equal to 80 Print “B” else if student’s grade is greater than or equal to 70 Print “C” else if student’s grade is greater than or equal to 60 Print “D” else Print “F”
  • 13. 13 2.6 if/else Selection Structure  Example if ( grade >= 90 ) // 90 and above cout << "A"; else if ( grade >= 80 ) // 80-89 cout << "B"; else if ( grade >= 70 ) // 70-79 cout << "C"; else if ( grade >= 60 ) // 60-69 cout << "D"; else // less than 60 cout << "F";
  • 14. 14 Importance of Curly Braces  Print “We have a problem” if examGrade < 60  Print “We have a real problem” if examGrade < 60 and quizGrade < 10  Print “Ok” if examGrade >= 60 int examGrade, quizGrade; if (examGrade < 60) cout << “We have a problem” << endl; if (quizGrade < 10) cout << “We have a real problem” << endl; else cout << “Ok”;
  • 15. 15 Exam Grade Flowchartint examGrade, quizGrade; if (examGrade < 60) cout << “We have a problem” << endl; if (quizGrade < 10) cout << “We have a real problem” << endl; else cout << “Ok”; examGrade < 60 “We have a problem” “We have a real problem” true quizGrade < 10 “Ok” truefalse
  • 16. 16 Writing Cases  Print “We have a problem” if examGrade < 60  Print “We have a real problem” if examGrade < 60 and quizGrade < 10  Print “Ok” if examGrade >= 60 examGrade < 60 quizGrade < 10 Action Case 1 true false “We have a problem” Case 2 true true “We have a problem” and “We have a real problem” Case 3 false true/false “Ok”
  • 17. 17 Putting it all together examGrade < 60 quizGrade < 10 Action Case 1 true false “We have a problem” Case 2 true true “We have a problem” and “We have a real problem” Case 3 false true/false “Ok” int examGrade, quizGrade; if (examGrade < 60) System.out.println(“We have a problem”); if (quizGrade < 10) System.out.printl(“We have a real problem”); else System.out.println(“Ok”); int examGrade, quizGrade; if (examGrade < 60) { cout << “We have a problem” << endl; if (quizGrade < 10) cout << “We have a real problem” << endl; } else cout << “Ok”;
  • 18. 18 boolean Operators  Combines multiple boolean expressions  If person’s age greater than or equal to 13 and less than 17, he can go to G and PG-13 rated movies, but not R rated movies  if (age >= 13 && age < 17) cout << “You can go to G and PG-13” << “ rated movies, but not R” + << “ rated movies.”) << endl;  boolean operators  and - && (true if all conditions are true)  or - || (true if one condition is true)  not - ! (true if conditions is false)
  • 19. 19 Expression Combinations operand1 operand2 operand1 && operand2 true true true true false false false true false false false false if (age >= 13 && age < 17) cout << “You can go to G and PG-13” << “ rated movies, but not R” + << “ rated movies.” << endl; Let age = 12 Let age = 16 Let age = 17 The && (and) operator
  • 20. 20 Expression Combinations operand1 operand2 operand1 || operand2 true true true true false true false true true false false false The || (or) operator operand !operand true false false true The ! (not) operator Example if ( !( grade == sentinelValue ) ) cout << "The next grade is " << grade << endl; Alternative: if ( grade != sentinelValue ) cout << "The next grade is " << grade << endl;
  • 21. 21 Playing Cards  Exercise with playing cards  Numbers represent the rank and suit of cards // Codes for suits const int SPADES = 0; const int HEARTS = 1; const int DIAMONDS = 2; const int CLUBS = 3; // Codes for nonnumeric ranks const int ACE = 1; const int JACK = 11; const int QUEEN = 12; const int KING = 13;
  • 22. 22 Prints a Card Name  Print “rank of suit”  Consider just the rank part if (rank == JACK) cout << "Jack"; else if (rank == QUEEN) cout << "Queen"; else if (rank == KING; cout << "King"; else if (rank == ACE) cout << "Ace"; else cout << rank; Notice: comparing rank to a number of different value
  • 23. 23 2.16switch Multiple-Selection Structure  switch  Test variable for multiple values  Series of case labels and optional default case switch ( variable ) { case value1: // taken if variable == value1 statements break; // necessary to exit switch case value2: case value3: // taken if variable == value2 or == value3 statements break; default: // taken if variable matches no other cases statements break; }
  • 24. 24 2.16switch Multiple-Selection Structure true false . . . case a case a action(s) break case b case b action(s) break false false case z case z action(s) break true true default action(s)
  • 25. 25 Converting if/else to a switch if (rank == JACK) cout << "Jack"; else if (rank == QUEEN) cout << "Queen"; else if (rank == KING; cout << "King"; else if (rank == ACE) cout << "Ace"; else cout << rank; switch (rank) { case JACK: cout << "Jack"; break; case QUEEN: cout << "Queen"; break; case KING: cout << "King"; break; case ACE: cout << "Ace"; break; default: cout << rank; }