+ All Categories
Home > Documents > Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Date post: 28-Dec-2015
Category:
Upload: sheena-debra-anthony
View: 221 times
Download: 1 times
Share this document with a friend
Popular Tags:
33
Week 3 – Selection Structures UniMAP Sem PGT 106 - C PROGRAMMING 1
Transcript
Page 1: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Week 3 – Selection Structures

UniMAP Sem PGT 106 - C PROGRAMMING 1

Page 2: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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

UniMAP Sem PGT 106 - C PROGRAMMING 2

Page 3: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Recall.. Selection Structure

• Used to choose among alternative courses of action

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

UniMAP Sem PGT 106 - C PROGRAMMING 3

Page 4: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

The if selection structure

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

UniMAP Sem PGT 106 - C PROGRAMMING 4

true

false

fGrade >= 60

print “Pass”

 

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

Print “Pass”

Page 5: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

The if..else selection structure

• Specifies an action to be performed both when the condition is true and when it is false

UniMAP Sem PGT 106 - C PROGRAMMING 5

truefalse

print “Fail” print “Pass”

fGrade >= 60

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

print “Pass”else

print “Fail”

Page 6: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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

UniMAP Sem PGT 106 - C PROGRAMMING 6

Page 7: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Types of selection

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

UniMAP Sem PGT 106 - C PROGRAMMING 7

Page 8: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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.

UniMAP Sem PGT 106 - C PROGRAMMING 8

Page 9: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

One-way Selection = if

UniMAP Sem PGT 106 - C PROGRAMMING 9

true

false

fGrade >= 60

print “Pass”

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

Print “Pass”

Page 10: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

One-way Selection = if

…..if(fGrade >= 60)

printf(“Pass”);…..…..

UniMAP Sem PGT 106 - C PROGRAMMING 10

Page 11: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

One-way Selection = if

• Another example: char cGrade;

……if(fMarkah>= 90)

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

UniMAP Sem PGT 106 - C PROGRAMMING 11

Page 12: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

One-way Selection = if

• Another example:– if (temperature is greater than 70 degree and it is

not raining) • recommended activity is golfing

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

printf(“recommended activity is golfing”);

UniMAP Sem PGT 106 - C PROGRAMMING 12

Page 13: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

One-way Selection = if

• Common Errors – if fScore >= 90 //no parentheses

cGrade = 'A';

– if(fScore >= 90); //; not herecGrade = 'A';

UniMAP Sem PGT 106 - C PROGRAMMING 13

Page 14: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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

UniMAP Sem PGT 106 - C PROGRAMMING 14

Page 15: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Two-way Selection = if..else

UniMAP Sem PGT 106 - C PROGRAMMING 15

truefalse

print “Fail”

print “Pass”

fGrade >= 60

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

print “Pass”else

print “Fail”

Page 16: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Two-way Selection = if..else

……… if(fGrade >=60)

printf(“Pass”);else

printf(“Fail”);……

UniMAP Sem PGT 106 - C PROGRAMMING 16

Page 17: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Two-way Selection = if..else

• Another example: if (fHour > 40.0) //Line 1

fWages = 40.0 * fRate +1.5 * fRate * (hour - 40.0);//Line 2

else //Line 3

fWages = fHour * fRate; //Line 4

• If fHour is 50, then the statement at Line 2 is executed• If fHour is 30, then the statement at Line 4 is executed

UniMAP Sem PGT 106 - C PROGRAMMING 17

Page 18: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Multi-selection = if-else if

• The syntax is:if(exp1)

stmt1;

else if(exp2)stmt2;

else if(exp3)stmt3;…

elsestmt n;

UniMAP Sem PGT 106 - C PROGRAMMING 18

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

step, through a series of statement blocks.

Page 19: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Multi-selection = if-else if

• E.g. temp display

>30 0c hot

20-30 0c

mild

10-20 0c

cold

<10 0c very cold

UniMAP Sem PGT 106 - C PROGRAMMING 19

fTemp >30 Print “hot”true

false

fTemp > 20 Print “mild”true

fTemp >10 Print “cold”

Print “very cold”

truefalse

false

Page 20: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Multi-selection = if-else if

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

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

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

elseprintf( “very cold\n”);

UniMAP Sem PGT 106 - C PROGRAMMING 20

Page 21: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Compound (Block of) Statement

• A compound statement (also called a block of statements) takes the form of{

statement 1; statement 2; …

… ... statement n; }

• It is considered a single statement

UniMAP Sem PGT 106 - C PROGRAMMING 21

Page 22: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Compound (Block of) Statement

• Example:if (iAge > 18) {

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

} else {

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

}

UniMAP Sem PGT 106 - C PROGRAMMING 22

Page 23: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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

nested • if(exp1)

if(exp2) statement1; OR

• if(exp1){

statement1;if(exp2)

statement2;

}

UniMAP Sem PGT 106 - C PROGRAMMING 23

Page 24: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Nested if

• Example:if (fTemperature >= 50) {

if (fTemperature >= 80)

printf( "Good day for swimming.\n”);else

printf( "Good day for golfing.\n“); }else

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

UniMAP Sem PGT 106 - C PROGRAMMING 24

Page 25: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

Nested if• Another example#include <stdio.h>void main (void){

int iDay;float fTime;

printf ("Type the day and time of interest\n\n");scanf (" %d %f ", &iDay, &fTime);

if (iDay <= 5){if (fTime <= 9.00)

printf (" Work \n\n");else

printf (" Relax \n\n");}

else{if (fTime <= 8.00)

printf (" Sleep \n\n");else

printf (" Have Fun \n\n");}

}UniMAP Sem PGT 106 - C PROGRAMMING 25

Output

Type the day and time of interest

Keyboard input 3 10.00Relax

Page 26: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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;

UniMAP Sem PGT 106 - C PROGRAMMING 26

Page 27: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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;

}

UniMAP Sem PGT 106 - C PROGRAMMING 27

Page 28: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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.

UniMAP Sem PGT 106 - C PROGRAMMING 28

Page 29: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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.

UniMAP Sem PGT 106 - C PROGRAMMING 29

Page 30: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

switch Structures• Example:

switch (cGrade) {

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, cGrade is a variable of the type char. If the value of

cGrade is, say 'A', the output is The grade is A.

UniMAP Sem PGT 106 - C PROGRAMMING 30

Page 31: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

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

UniMAP Sem PGT 106 - C PROGRAMMING 31

Page 32: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

What’s wrong??

UniMAP Sem PGT 106 - C PROGRAMMING 32

Page 33: Week 3 – Selection Structures UniMAP SemPGT 106 - C PROGRAMMING1.

End Week 3

Q & A!

UniMAP Sem PGT 106 - C PROGRAMMING 33


Recommended