Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Selection statements


Published on

its a

Published in: Software, Technology, Business
  • Learning Programming is too easy!! Watch the free video tutorials.
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Selection statements

  1. 1. Made by: Abhishek Kasana Abhishek Sharma Saurabh Aggarwal Harsh Dabas
  2. 2. Flow Of Control Flow of control is basically of three types:  1) Sequential flow of control  2) Selection flow of control  3) Iteration flow of control
  3. 3. Selection Flow Of Control  Selection flow of control is also known as selective execution. Here we may select one of the two blocks to execute based on a certain condition. Execution of one block excludes the other .
  4. 4. Types Of Selection Flow Of Control C++ provides two Selection Statements:  Single Branching Statement [ If ()….else]  Multiple Branching Statement [ Switch()] if-else Selection switch
  5. 5. Single Branching Statement *if()…else+ Single Branching statement is very versatile form of selection statement. It offers following types of selection.  If  If()…else  Nested if  Else if
  6. 6. The if Statement Of C++  An if statement test a particular condition; if the condition evaluates to true, a course-of-action is followed i.e., statement(s) following are executed. Otherwise the course-of –action is ignored.  Syntax: if (expression ) { statement(s); } Where if is the keyword, expression is a booleon expression within a set of parenthesis and statement can be a simple or compound statement.
  7. 7. Some test expressions:  (a) if(grade==‘A’) cout<<“You Did Well”;  (b) if(a>b) cout<<“A has more than B has.”;  (c) if(x) { cout<<“x is non-zeron”; cout<<“Hence it results into “; }  (d) if((x>=2)&&(x<=10)) { cout<<“A compound test condition resulted truen”; }
  8. 8. Remember:  A false value is 0 in C++ and a non–zero value is considered true in C++.  Please note that if(x) type of condition might not work in newer compilers. Though it works in Turbo-C++, for newer compilers like codeblocks, we change the condition to if(x!=0) and change if(!x) into if(x==0).
  9. 9. Selection if( )…else …  Also possible to make two way selection  If the expression is true, statement1 is executed  Otherwise statement2 is executed  Syntax; if (expression) { statement(s)1 } else { statement(s)2 }
  10. 10. Always Remember:  In an if-else statement, only the code associated with if (i.e., statement 1) or the code associated with else (i.e., statement 2) executes, never both.
  11. 11. One or more if statements embedded within the if statement are called nested ifs. The following if-else statement is a nested if declaration nested to level two: Nested if
  12. 12. Nested if can have following the forms: 1)if nested inside if - part if(expresssion1) { : if(expression2) statement 1; else statement 2; : } else body-of-the-else; 2)If nested inside else part if (expression1) body-of-if; Else {: if (expression 2) statement-1; else statement-2; : } 3)If nested inside both if part and else part If (exprssion1) { : if (expression2) statement 1; else statement 2; : } Else { : if(expression 3) statement 3; else statement 4; : }
  13. 13. The if else if ladder  A common programming construct in C++ is the if-else-if ladder ,which is often also called the if-else-if staircase because of its appearance . It takes the following general form: if (expression1) statement 1; else if (expression 2) statement 2; else if (expression3)statement 3: : else statement n: This can also be written as : If (expression 1) statement 2; Else if (expression 2) statement 2; Else if (expression 3) statement 3: : Else statement n:
  14. 14. Graphical representation of if-else-if ladder:
  15. 15. The Dangling Else Problem The nested if – else statement introduces a source of potential ambiguity referred to as dangling else problem. This problem arises when in a nested if statement, number of ifs is more than the number of else clause. This question then arise , with which if does the additional else clause properly match up.
  16. 16. 16 The Dangling else  How to determine which if the else goes with  Example: if (abs (x - 7)) if (x < 7) cout << “x approaches 7 from left”; else cout << “x approaches 7 from the right”; else cout << “x not close to 7”; Rule : An else goes with the closest unmatched if ? ?
  17. 17. 17 The Dangling Else  Rule : an else goes with the closest unmatched if  Consider … how do you force an else to go with a previous if? if (x < y) if (y > 3) cout << “message about y > 3”; else cout << “message about x and y”; if (x < y) { if (y > 3) cout << “message about y > 3”; } else cout << “message about x and y”; Use { curly brackets } to nest the statements
  18. 18. This statement is used when we have to select one option out of many alternatives. It is a multi branch statement that makes the control to jump to one of the several statements based on the value of an integer variable or an expression. The general Form of the switch is: switch(expression) { case constant 1: statement sequence 1; break; case constant 2: statement sequence 2; break; case constant 3: statement sequence 3; break; . . case constant n-1: statement sequence n-1; break; default: statement sequence; } Multiple Branching Statement Switch statment
  19. 19. Nested Switch Like if statement , a switch statement can also be nested .There can be a switch as part of the statement sequence of another switch. Example: Switch(a) { Case 1 : switch(b) { case 0: cout<<“divide by Zero ---Error!!”; break; case 1: res=a/b; } break; Case 2 : : : }
  20. 20. Some important things to know about Switch  A switch statement can work only for equality comparisons.  No two case labels in the same switch can have identical values. But, in case of nested switch statements the case constant of the inner and outer switch can contain common values.  If character constants are used in the switch statement , they are automatically converted to their integers(i.e.. their equivalent ASCII codes) .  Switch Statement is more efficient than if in a situation that supports the nature of switch operation.  If a case statement does not include a break statement then fallthrough occurs.  Default statement gets executed when no match is found. The default statement is optional and , if it is missing , no action takes place if all matches fail.
  21. 21. Switch vs. If Else Switch If Else 1 The Expression is tested for equality only . The expression cam be tested for inequality as well. (<,>) 2 Only one value is used to match against all case labels. Multiple expression can be tested for branching. 3 Switch case is not effective when checking for a range value. If else is a better option to check ranges. 4 Switch case cannot handle floating point values If else can handle floating point values 5 The case label must be constant(Characters of integers). If else can use variables also for conditions. 6 Switch statement provides a better way to check a value against a number of constants . If else is not suitable for this porpose .
  22. 22. Conclusion  C++ provides two kinds of selection statements: if and switch.  The if-else statement tests an expression and depending upon its truth value, one of the two sets-of-action is executed.  The if-else can be nested also i.e., an if statement can have another if statement .In a nested if-else statement, an else goes to immediately preceding unmatched if .  A switch is another selection statement in C++ that tests a value against a set of integer or character constants.  A switch statement can be nested also .  An if-else is more flexible and versatile compared to switch but switch is more efficient in a situation when the same variable is compared against a set of values for equality.