Selection

1 / 11

Notes week 5 - PowerPoint PPT Presentation

Selection Selection allows you to choose between two or more alternatives. In C this means that the course of your executing program will depend on the result of an expression. true (any other value but zero) false (zero) expression Statement 2 Statement 1 Logical Flow Selection

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PowerPoint Slideshow about 'Notes week 5' - Audrey

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Selection

Selection allows you to choose between two or more alternatives. In C this means that the course of your executing program will depend on the result of an expression.

true

(any other

value but

zero)

false

(zero)

expression

Statement 2

Statement 1

Logical Flow

Selection

Logical data in C - C recognizes zero as a false value and any other nonzero value is considered true.

Logical Operators - logical operators form conditions or logical expressions.

Thenot operator ( ! ) changes a true value (nonzero ) to false ( zero ) and a false value ( zero ) to true (one ).

Selection

The andoperator ( && ) is a binary operator with four distinct possible combinations of values in its operands.

The or operator ( || ) is a binary operator with four distinct combinations of values in its operands.

Selection

Short-circuit evaluation - C will stop evaluation when it knows for sure what the final result will be.

false && ( anything )

true || ( anything )

after the first operand is evaluated and found to be false and the operator is the and operator ( && ) the second operand will not be evaluated ( this could cause unexpected results if the second operand has side effects )

Relational Operators - Relational operators support logical relations. They are all binary operators that accept two operands and compare them. The result is logical data, that is, it is always a zero or one.

Selection

• The if …. else Statement - An if…else statement is a composite statement used to make a decision between two alternatives.
• Syntax:
• if ( expression )
• statement 1
• else
• statement 2
• The expression can be any C expression. After it has been evaluated, if its value is true (not zero ), statement 1 is executed: otherwise, statement2 is executed. It is impossible for both statements to be executed in the same evaluation.
• Syntactical rules for if…else statements:
• The expression must be enclosed in parentheses.
• No semicolon ( ; ) is needed for an if..else statement. Statement 1 and statement 2 may have a semicolon as required by their types.
• The expression can have a side effect.
• Both the true and false statements can be any statement (even another if…else statement) or can be a null statement.

Selection

• We can swap the position of statement 1 and statement2 if we use the complement of the original expressions.
• if ( x > y)
• printf( “ x is greater than y\n”) ;
• else
• printf(“ y is greater than x\n”) ;
• An if…else with a compound statement
• if ( x != y)
• {
• printf( “ x is not equal to y\n”) ;
• x = y;
• }
• else
• {
• printf(“ x is equal to y\n”) ;
• }

The semicolons

belong to the

expression statements

not to the

if…else statement

Curly brackets

Selection

• A null else statement:
• if ( x > 7 && x < 10)
• {
• printf( “ x is either 8 or 9\n”) ;
• }

else is null

Selection

• Nested if statements - when an if…else is included within an if…else, it is known as a nested if.
• if ( x <= y)
• if ( x < y)
• printf( “ %d < %d\n”, x ,y);
• else
• printf( “ %d == %d\n”, x ,y);
• else
• printf(“ %d > %d\n”, x ,y);
• Dangling else problem - This problem is created when there is no matching else for every if. Simple rule: else is always paired with the most recent unpaired if
• if ( x <= y)
• if ( x < y)
• printf( “ %d < %d\n”, x ,y);
• else
• printf( “ %d == %d\n”, x ,y);

The compiler pairs

this if and else!

Selection

• Multiway selection - multiway selection chooses among several alternatives. There are two different ways to implement multiway selection in C. The first is by using the switchstatement. The other is a programming technique known as the else-if that provides a convenient style to nest if statements.
• The else-if -There is no such C construct as the else-if. Rather, it is a style of coding that is used when you need a multiway selection based on a value that is not integral.
• if ( score >= 90 )
• else if (score >= 80 )
• else if (score >= 70 )
• else if (score >= 60 )
• else
• The else-if is used when:
• The selection variable is not an integral and
• The same variable is being tested in the expression

Selection

• The switch Statement - Switch is a composite statement used to make a decision between many alternatives. The selection condition must be one of the C integral types.
• Syntax:
• switch ( expression )
• {
• case constant-1 : statement;
• statement;
• case constant-2 : statement;
• statement;
• ……
• statement;
• case constant-3 : statement;
• …….
• statement;
• case constant-n : statement;
• statement;
• default : statement;
• …….
• statement;
• } /* end switch */

Selection

• Syntactical rules for the switch statement:
• There must be at least one case statement.
• Each case expression is associated with a constant.
• The case expression is followed by a colon ( : ) and then the statement with which it is associated.
• There may be one or more statements for each case. The case label simply provides an entry point to start executing the code.
• Default is executed whenever none of the previous case values matched the value in the switch expression. The default is optional.
• When the statements associated with one case have been executed, the program flow continues with the statements for the next case unless a break statement is used. The break statement causes the program to jump out of the switch statement (goes to the closing brackets and continues with code following the switch