Presentation is loading. Please wait.

Presentation is loading. Please wait.

Control Structures Selection or Decision or Branching.

Similar presentations


Presentation on theme: "Control Structures Selection or Decision or Branching."— Presentation transcript:

1

2 Control Structures Selection or Decision or Branching

3 Decision Which the statements are executed Two types: simple alternativeif compound alternativeif...else

4 Single Alternative Decision An action is taken if the condition is true, otherwise the control goes to the next statement.

5 Syntax if (expression) statement If expression is true, statement is executed; otherwise statement is skipped. no ; * * Single Alternative Decision if (stomach empty) eat a Snickers bar; Example: if (stomach == empty) eat a Snickers bar; = note: 2 = signs

6 An expression is any combination of variables, constants, or function calls that evaluate to a value. ex.5x + y a = 3 + j Nn++ f(12.3, a, “Yvonne”) Syntax if (expression) statement Single Alternative Decision * *

7 Syntax if (expression) statement If expression is true, statement is executed; otherwise statement is skipped. no ; * * Single Alternative Decision if (stomach == empty) eat a Snickers bar; eat a marshmallow sunday; Example: if (stomach == empty) eat a Snickers bar; eat a marshmallow sunday; = note: 2 = signs

8 Single Alternative Decision if (grade >= 90) cout = 90) cout << “Congratulations!\n”; cout << “Your grade is “ << grade << “.\n";

9 The Compound Statement Syntax if (expression) { { statement; statement; if (expression) { statement; statement; } } Example: if (u > v){ a = 1; b = 2; if ( u > z) { x =11; y = 12; }} * * * * The compound statement is itself a statement.

10 if if Examples Valid: Valid: if (y != 0.0) z = x/y; if (a < b && b < c) { d = a + b + c; cout << "All OK\n"; } * * Not Valid Not Valid: if b == a area = a * a; if (a < b) && (b < c) if (a < b) ; Valid But... if (a < b) ;

11 if if Problems Using = in place of == Using = in place of == if (toss == 7) cout << “You win the bet.”; What is the difference between these two? if (toss == 7) cout << “You win the bet.”; if (toss = 7) cout << “You win the bet.”;

12 if Compounding 2 if Statements if (j < k) {min = j; cout << “the smaller number is “ << min; } if (j < k) cout << "j is smaller than k\n"; More Efficient: More Efficient: if (j < k) {min = j; cout << “the smaller number is “ << min; cout << "j is smaller than k\n"; } *

13 Double Alternative Decision An action (or set of actions) is taken if the condition is true, another action (or set of actions) is taken if the condition is false, then the control goes to the next statement. if... else if... else is the typical double alternative. *

14 if-else The if-else Statement Syntax if (expression) statement1 else statement2 If expression is nonzero then statement1 is executed and statement2 is skipped. If expression is zero statement1 is skipped and statement2 is executed.

15 if... else if... else Examples if (stomach == empty) { eat a pizza; eat a Snickers bar; } else eat a salad; if ( j < k ) { min = j; k = k * 3; } else { min = k; j = j * 3; } *

16 Interactive Program Finding the minimum of three values

17 Finding the Minimum of Three Values * * * int x, y, z, min; cout << “Input three integers: “; cin >> x >> y >> z; if (x < y) min = x; else min = y; if (z < min) min = z; cout << “The minimum value is “ << min << ‘\n’;

18 Output: Input three integers: Interactive Program Finding the minimum of three values * 9 5 -12 The minimum value is -12 _

19 if-else The if-else Statement Syntax if (expression) statement1 else statement2 if (a > b) max = a; else max = b; expression1 ? expression2 : expression3 max = (a > b) ? a : b; * * *

20 if Nested if Statements A nested if statement is an if statement that is included within another if statement. Syntax if (expression1) { if (expression2) statement }

21 if Nested if Example if (number == secretnumber) cout << “You guessed it!”; if (number != secretnumber) { cout << “Sorry, that’s not the number.\n”; if (number > secretnumber) cout << “You guessed too high.\n”; else cout << “You guessed too low.\n”; } *

22 2 statement1 3 else if (expression2) 4 statement2 5... 6 else if (expressionN) 7 statementN 8 else 9 last statement 10 next statement * if...else Chained if...else Example Syntax 1 if (expression1)

23 if...else Chained if...else Example if (total >=90) grade = ‘A’; else if (total >= 80) grade = ‘B’; else if (total >= 70) grade = ‘C’; else if (total >= 60) grade = ‘D’; else grade = ‘E’; next statement *

24 else The Dangling else if (avg >= 60.0) if (avg < 70.0) cout << “Passing, but marginal”; else cout << “Failing”; * if (avg >= 60.0) { if (avg < 70.0) cout << “Passing, but marginal”; } else cout << “Failing”;

25 else The Dangling else if (avg >= 60.0) { if (avg < 70.0) cout << “Passing, but marginal”; } else cout << “Failing”;

26 AND vs. OR if( (rel == 'S') && (rel == 'M') && (rel == 'F') ) cout << "\nImmediate family.\n"; if( (rel != 'S') && (rel != 'M') && (rel != 'F') ) { cout << "\nNot immediate family,\n"; cout << " but a close relation.\n"; }

27 Random Numbers #include // defines rand() & srand() #include // defines time() in main():srand(time(NULL));  num1 = 1 + rand() % 3; num1 = 1 + rand() % 6; num1 = 6 + rand() % 5; 1, 2, 3 1, 2, 3, 4, 5, 6 6, 7, 8, 9, 10 how many numbers * * * starting number

28 switch The switch Statement « Similar to if statements « Can list any number of branches « Used in place of nested if statements « Avoids confusion of deeply nested ifs

29 switch The switch Statement Syntax switch (expression) { case value1: statement1; break; case value2: statement2; break;  case valuen: statementn; break; default: statement; } no ; use : *

30 switch The switch Statement switch Syntax switch (expression) { case value1: statement1; break break; case value2: statement2; break break;  case valuen: statementn; break break; default default: statement; } no ; use :

31 switch The switch Statement switch (let_grd) { case ‘A’: cout << “Grade is between 90 & 100”; break; case ‘B’: cout << “Grade is between 80 & 89”; break; case ‘C’: cout << “Grade is between 70 & 79”; break; cont.

32 switch The switch Statement case ‘D’: cout << “Grade is between 60 & 69”; break; case ‘E’: cout << “Grade is between 0 & 59”; break; default: cout << “You entered an invalid grade.”; } next statement

33 switch The switch Statement switch (let_grd) { case ‘A’: cout << “Grade is between 90 & 100”; break; case ‘B’: cout << “Grade is between 80 & 89”; break; case ‘C’: cout << “Grade is between 70 & 79”; break; case ‘D’: cout << “Grade is between 60 & 69”; break; case ‘E’: cout << “Grade is between 0 & 59”; break; default: cout << “You entered an invalid grade.”; }

34 break The break Statement switch (let_grd) { case ‘A’: cout << “Grade is between 90 & 100”; break; case ‘B’: cout << “Grade is between 80 & 89”; break; case ‘C’: cout << “Grade is between 70 & 79”; break; case ‘D’: cout << “Grade is between 60 & 69”; break; case ‘E’: cout << “Grade is between 0 & 59”; break; default: cout << “You entered an invalid grade.”; }

35 break The break Statement switch (let_grd) { case ‘A’: case ‘B’:cout << “Good Work”; break; case ‘C’:cout << “Average Work”; break; case ‘D’: case ‘E’:cout << “Poor Work”; }

36 break The break Statement switch (let_grd) { case ‘A’: case ‘a’: case ‘B’: case ‘b’:cout << “Good Work”; break; case ‘C’: case ‘c’:cout << “Average Work”; break; etc.

37 switch The switch Statement * * * * Menu * * * * 1. NY Yankees 2. Orioles 3. Dodgers Choose either 1, 2, or 3:

38 switch The switch Statement switch (choice) { case 1: cout << “World Champs”; case 2: cout << “Good Guys”; case 3: cout << “Da Bums”; } What will be the output?

39 switch The switch Statement What will be the output when the user enters 1 World ChampsGood GuysDa Bums 2 Good GuysDa Bums 3 Da Bums * * * * 4 skips the switch

40 switch The switch Statement * switch (choice) { case 1: cout << “World Champs”; case 2: cout << “Good Guys”; case 3: cout << “Da Bums”; } switch (choice) { case 1: cout << “World Champs”; break; case 2: cout << “Good Guys”; break; case 3: cout << “Da Bums”; break; default: cout << “Enter a 1, 2, or 3”; }

41 Common Errors Using = in place of == Improper braces in nested ifs Too deeply nested ifs Missing break statements in switch the statement Copyright © 1999 by Freedom TLC, Inc.

42 Debugging Syntax errors vs. Logic error Prevention - plan first! Valuation tables Display values C++ Debugger Copyright © 1999 by Freedom TLC, Inc.

43 “I discovered I always have choices, and sometimes it’s only a choice of attitude” Judith M. Knowlton Copyright © 1999 by Freedom TLC, Inc.


Download ppt "Control Structures Selection or Decision or Branching."

Similar presentations


Ads by Google