40
Lecture 3 – Selection

Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Embed Size (px)

Citation preview

Page 1: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Lecture 3 – Selection

Page 2: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement Nested if Conditional operator Switch structure

Page 3: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

RECALL.. Selection structure

Used to choose among alternative courses of action

C has three types: if, if..else, and switch

Page 4: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

The if selection structure

if structure is a single-entry/single-exit structure

true

false

grade >= 60

print “Passed”

 

If student’s grade is greater than or equal to 60

Print “Passed”

Page 5: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

The if..else selection structure Specifies an action to be performed

both when the condition is true and when it is false

truefalse

print “Failed” print “Passed”

grade >= 60

If student’s grade is greater than or equal to 60

Print “Passed”else

Print “Failed”

Page 6: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Selection Statements

Used to control the flow of a program

Also called as decision or branches

Branches are conditions or choices used to enable selection of program flow

Page 7: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Types of selection

One-way selection = if Two-way selection = if..else Multi-selection Nested if Switch structure = switch

Page 8: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

One-way Selection = if In C, a condition is represented by a logical (Boolean)

expression true and false are logical (Boolean) values The syntax of one-way selection is:

if (expression){ statement; }

If the value of the expression is true, statement is executed

if false, statement is not executed and the computer goes on to the next statement in the program.

Page 9: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

One-way Selection = if

true

false

grade >= 60

print “Passed”

If student’s grade is greater than or equal to 60

Print “Passed”

Page 10: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

One-way Selection = if

…..if(grade >= 60)

printf(“Passed\n”);…..…..

Page 11: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

One-way Selection = if Another example: char grade;

……if(markah>= 90)

grade = 'A'; ………...printf(“Grade is : %c\n”, grade);

Page 12: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

One-way Selection = if Another example:

If temperature is greater than 70 degree and it is not raining, the recommended activity is golfing

bool rain=false;…if((temp > 70) && !(rain))

printf(“recommended activity is golfing”);

Page 13: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

One-way Selection = if

Two Common Mistakes if score >= 90 //no parentheses

grade = 'A'; if(score >= 90); //; not here

grade = 'A';

Page 14: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Exercises (if statement)Write C codes for the following: if x is not equal to zero then divide y by x

and the result is stored at z adds x to a variable sum if x is positive if x is positive, adds x to sum but in additi

on it adds 1 to a variable poscount Convert the pseudocode to C codes:

Prompt the user for age, display this sentence "Wow! You're really old!" if the age is greater than 40.

Page 15: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Two-way Selection = if..else The syntax of two-way selection is:

if (expression) statement1;

elsestatement2;

If the value of the expression is true, statement1 is executed;

if false, statement2 is executed

Page 16: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Two-way Selection = if..else

truefalse

print “Failed”

print “Passed”

grade >= 60

If student’s grade is greater than or equal to 60

Print “Passed”else

Print “Failed”

Page 17: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Two-way Selection = if..else

……… if(grade >=60)

printf(“Passed\n”);else

printf(“Failed\n”);……

Page 18: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Two-way Selection = if..else

Another example: if (hours > 40.0) //Line 1

wages = 40.0 * rate +1.5 * rate * (hours - 40.0);//Line 2

else //Line 3 wages = hours * rate; //Line 4

If hours is 50, then the statement at Line 2 is executed/performed

If hours is 30, then the statement at Line 4 is executed/performed

Page 19: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Exercises (if statement)Write C codes for the following:

• if x is not equal to zero then divide y by x and the result is stored at z, else otherwise display an error message

• if x is positive, adds x to sum_pos but in addition it adds 1 to a variable poscount. if x is negative, adds x to sum_neg but in addition it adds 1 to a variable negcount

• If a is greater than b, give appropriate output, else give another message

Page 20: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Multi-selection = if-else if• The syntax is:

if(exp1){stmt1;}

else if(exp2){stmt2;}

else if(exp3){stmt3;

…}

else{stmt n;}

stmt x;

An if-else if control structure shifts program control, step by

step,through a series of statement blocks.

Page 21: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Exampleint testscore = 76; char grade; if (testscore >= 90) { grade = 'A'; } else if (testscore >= 80) { grade = 'B'; } else if (testscore >= 70) { grade = 'C'; } else if (testscore >= 60) { grade = 'D'; } else { grade = 'F'; } printf(“Grade: %c ”, grade);

Page 22: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Examples1. Let us consider an example of grading the students

in an academic institution. The grading is done according to the following rules:

Average marks Grade 80-100 Honours60- 79 First Division50- 59 Second Division40- 49 Third Division0- 39 Fail

2. Increments count1 if 0 <= x < 0.25, increments count2 if 0.25 <= x < 0.5, increments count3 if 0.5 <= x < 0.75 and increments count4 if 0.75 <= x< 1. Assume that a real variable x is known to be greater than or equal to zero and less than one.

Page 23: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Multi-selection = if-else if E.g.

temp display

>30 0c hot

20-30 0c mild

10-19 0c cold

<10 0c very cold

temp >30 Print “hot”true

false

temp > 20 Print “mild”true

temp >10 Print “cold”

Print “very cold”

truefalse

false

Page 24: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Multi-selection = if-else if

if(temp > 30)printf( “hot\n”);

else if((temp >=20) && (temp<=30))printf( “mild\n”);

else if(temp >=10) && (temp <= 19))printf(“cold\n”);

elseprintf( “very cold\n”);

Page 25: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Comparison

Types of Sel ecti on Exampl esStructure

Si ngl e Sel ecti on i f x i s not equal to zero then i f di vi de y by x

Doubl e Sel ecti on i f x i s not equal to zero theni f . . el se di vi de y by x

el se di spl ay an error message

Mul t i Sel ecti on i f x i s l ess than zero theni f . . el se. . i f set y equal to -1

el se i f x i s equal to zero then set y equal to 0el se set y equal to 1

Page 26: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Compound (Block of) Stmt A compound statement (also called a

block of statements) takes the form { statement 1; statement 2; . . . statement n; }

Page 27: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Compound (Block of) Stmt Example:if (age > 18) {

printf("Eligible to vote.\n“);printf("No longer a minor.\n“);

} else {

printf("Not eligible to vote.\n“);printf(“Still a minor\n”);

}

Page 28: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Nested if• When one control statement is within another, it is said to be nested

• if (test condition1){ if (test condition 2) { statement-1; } else { statement-2; } }else { statement-3; }statement-x;

Page 29: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Nested if

Eg.if (temperature >= 50) {

if (temperature >= 80) printf( "Good day for swimming.\n”);

elseprintf( "Good day for golfing.\n“);

}else

printf("Good day to play tennis.\n“);

Page 30: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Examples1. Check the two numbers entered by the user, th

e first number must be 1, and the second number must be 2. Mission is accomplished only if both are correct.

2. Write C code for the following: If the input is ten or below ten, "below 10" will b

e printed. If the input is above ten, the program will go into the "else statement". In the "else statement" there is another "if statement" (this is nesting). This "if statement" checks the input again. If the input is below sixty, "below 60" will be printed.

Page 31: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Nested if Another example

Page 32: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

The Conditional Operator (? :)

The syntax of using the conditional operator is: expression1 ? expression2 : expression3;

This is called a conditional expression. The statement:

if (a >= b) max = a; else max = b;

Is equivalent to the statement:max = (a >= b) ? a : b;

Page 33: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

switch Structures Similar to if-else if control structure The general form (syntax):

switch (expression) {

case value1: statements1; break; case value2: statements2; break; . . . case valuen: statementsn; break; default: statements;

}

Page 34: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

switch Structures The break statement has a special

meaning and may or may not appear after each statement.

In C, switch, case, break, and default are reserved words.

In a switch structure, first the expression is evaluated. The value of the expression is then used to perform the corresponding action.

Page 35: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

switch Structures The expression is usually an identifier. The value of the expression can be only integral. The expression is sometimes called the

selector. Its value determines which statement is selected for execution.

A particular case value should appear only once. One or more statements may follow a case label,

so you do not need to use braces to turn multiple statements into a single compound statement.

The break statement may or may not appear after each statement.

Page 36: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

switch Structures Example:

switch (grade) {

case 'A': printf("The grade is A.“); break; case 'B': printf("The grade is B.“); break; case 'C': printf("The grade is C.“); break; case 'D': printf("The grade is D.“); break; case 'F': printf("The grade is F.“); break; default: printf("The grade is invalid.“);

} where, grade is a variable of the type char. If the va

lue of grade is, say 'A', the output is The grade is A.

Page 37: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

switch Structures The switch statement executes according to

the following rules: When the value of the expression is matched against

a case value (also called a label), the statements execute until either a break statement is found or the end of the switch structure is reached.

If the value of the expression does not match any of the case values, the statements following the default label execute. If the switch structure has no default label, and if the value of the expression does not match any of the case values, the entire switch statement is skipped.

A break statement causes an immediate exit from the switch structure

Page 38: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

Examples1. Check if got any error here, if so, correct it/them.

2. Use switch to count the number of students earned in each grade .

Page 39: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

What’s wrong??

Page 40: Lecture 3 – Selection. Outline Recall selection control structure Types of selection One-way selection Two-way selection Multi-selection Compound statement

End Week 3

Q & A!