Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | cassandra-elliott |
View: | 223 times |
Download: | 3 times |
UniMAP Sem II-09/10
EKT120: Computer Programming 1
Week 3 – Selection Structures
UniMAP Sem II-09/10
EKT120: Computer Programming 2
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 II-09/10
EKT120: Computer Programming 3
Recall.. Selection Structure
Used to choose among alternative courses of action
C has three types: if, if..else, and switch
UniMAP Sem II-09/10
EKT120: Computer Programming 4
The if selection structure
if structure is a single-entry/single-exit structure
true
false
grade >= 60
print “Pass”
If student’s grade is greater than or equal to 60
Print “Pass”
UniMAP Sem II-09/10
EKT120: Computer Programming 5
The if..else selection structure
Specifies an action to be performed both when the condition is true and when it is false
truefalse
print “Fail” print “Pass”
grade >= 60
If student’s grade is greater than or equal to 60
print “Pass”else
print “Fail”
UniMAP Sem II-09/10
EKT120: Computer Programming 6
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 II-09/10
EKT120: Computer Programming 7
Types of selection
One-way selection = if Two-way selection = if..else Multi-selection Nested if Switch structure = switch
UniMAP Sem II-09/10
EKT120: Computer Programming 8
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 II-09/10
EKT120: Computer Programming 9
One-way Selection = if
true
false
grade >= 60
print “Pass”
If student’s grade is greater than or equal to 60
Print “Pass”
UniMAP Sem II-09/10
EKT120: Computer Programming 10
One-way Selection = if
…..if(grade >= 60)
printf(“Pass”);…..…..
UniMAP Sem II-09/10
EKT120: Computer Programming 11
One-way Selection = if Another example: char grade;
……if(markah>= 90)
grade = 'A'; ………...printf(“Grade is : %c\n”, grade);
UniMAP Sem II-09/10
EKT120: Computer Programming 12
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((temp > 70) && !(rain))
printf(“recommended activity is golfing”);
UniMAP Sem II-09/10
EKT120: Computer Programming 13
One-way Selection = if
Common Errors if score >= 90 //no
parentheses grade = 'A';
if(score >= 90); //; not heregrade = 'A';
UniMAP Sem II-09/10
EKT120: Computer Programming 14
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 II-09/10
EKT120: Computer Programming 15
Two-way Selection = if..else
truefalse
print “Fail”
print “Pass”
grade >= 60
If student’s grade is greater than or equal to 60
print “Pass”else
print “Fail”
UniMAP Sem II-09/10
EKT120: Computer Programming 16
Two-way Selection = if..else
……… if(grade >=60)
printf(“Pass”);else
printf(“Fail”);……
UniMAP Sem II-09/10
EKT120: Computer Programming 17
Two-way Selection = if..else Another example: if (hour > 40.0) //Line 1
wages = 40.0 * rate +1.5 * rate * (hour - 40.0); //Line 2else //Line 3
wages = hour * rate; //Line 4
If hour is 50, then the statement at Line 2 is executed
If hour is 30, then the statement at Line 4 is executed
UniMAP Sem II-09/10
EKT120: Computer Programming 18
Multi-selection = if-else if The syntax is:
if(exp1)stmt1;
else if(exp2)stmt2;
else if(exp3)stmt3;…
elsestmt n;
An if-else if control structure shifts program control, step by
step, through a series of statement blocks.
UniMAP Sem II-09/10
EKT120: Computer Programming 19
Multi-selection = if-else if E.g.
temp display
>30 0c hot
20-30 0c
mild
10-20 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
UniMAP Sem II-09/10
EKT120: Computer Programming 20
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 < 20))printf(“cold\n”);
elseprintf( “very cold\n”);
UniMAP Sem II-09/10
EKT120: Computer Programming 21
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 II-09/10
EKT120: Computer Programming 22
Compound (Block of) Statement
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”);
}
UniMAP Sem II-09/10
EKT120: Computer Programming 23
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 II-09/10
EKT120: Computer Programming 24
Nested if
Example: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“);
UniMAP Sem II-09/10
EKT120: Computer Programming 25
Nested if Another example
UniMAP Sem II-09/10
EKT120: Computer Programming 26
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 II-09/10
EKT120: Computer Programming 27
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 II-09/10
EKT120: Computer Programming 28
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 II-09/10
EKT120: Computer Programming 29
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 II-09/10
EKT120: Computer Programming 30
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 value of grade is, say 'A', the output is The grade is A.
UniMAP Sem II-09/10
EKT120: Computer Programming 31
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 II-09/10
EKT120: Computer Programming 32
What’s wrong??
UniMAP Sem II-09/10
EKT120: Computer Programming 33
End Week 2
Q & A!