SlideShare a Scribd company logo
1 of 94
CHAPTER 5: Decision Making and
Looping
CSEB113 PRINCIPLES of PROGRAMMING
CSEB134 PROGRAMMING I
by
Badariah Solemon

BS (Sept 2012)

1
Topics
1. Decision making using:
–
–
–
–
–
–

Simple if selection
Simple if…else selection and using ?: operator
Handling multiple conditions
Nested if…else selection
if…else if selection
switch selection

2. Looping:
–
–
–
–

Design: Counter-controlled vs Sentinel-controlled
Using while loop
Using do…while loop
Using for loop

3. Data validation in selection and repetition structures
4. Combinations of control structures
5. Using continue and break statements
BS (Sept 2012)

2
Topic 1
DECISION MAKING
BS (Sept 2012)

3
Intro to Decision Making
• Re-call the Apples problem:
Compute and display the total cost of apples given the
number of kilogram (Kg) of apples purchased and the cost
per Kg of apples

• In this problem, we have identified two conditions/
constraints:
1.
2.

The quantity purchased must be more than zero
The cost per Kg apples must be more than zero

• Because of those conditions, before the C program calculates
the total cost of apples purchased, we must make it DECIDE
that both conditions have been met.
• We can get our C programs to make decisions of this sort
using Selection Structure
BS (Sept 2012)

4
What is Selection Structure?
• Take actions depending on the outcome of a condition. A condition is a
logical expression that is either True or False.
• General forms of selection structure (SYNTAX):
if (condition)
then-statement;
else
else-statement;
if (condition)
3
then-statement;
else if (condition)
elseif-statement;
…
else
else-statement;

if(condition)
then-statement;

1

2
(condition)? then-statement : else-statement;
switch (ControlVariable)
{
case constant 1:
statement;
break;
case constant-n:
statement;
break;
default:
statement;
}
BS (Sept 2012)

4

5
Topic 1-1
SIMPLE if SELECTION

BS (Sept 2012)

6
if Selection
• Is used when a statement or group of statements is to be executed when
the logical expression of the condition is TRUE.
an expression that can return true or false
• Syntax:
if (condition)
single then-statement;

No semicolon at the end of the
if statement.

– The expression of the condition must be specified using Relational and
Equality operators as follows:
Type

Operator

Meaning

Example
expression

Result if x=5 and
y=4

Relational

>

x is greater than y

x > y

5 > 4 is TRUE

<

x is less than y

x < y

5 < 4 is FALSE

>=

x is greater than or equal to y

x >= y

5 >= 4 is TRUE

<=

x is less than or equal to y

x <= y

5 <= 4 is FALSE

==

x is equal to y

x == y

5 == 4 is FALSE

!=

x is not equal to y

x != y

5 != 4 is TRUE

Equality

BS (Sept 2012)

7
Example – Relational Operator
• Case Apples: the algorithm is refined by making the
Begin
program decide that the following condition
is met:
–

Prompt and get
QtyApple

The quantity purchased must be more than zero

Prompt and get
Cost

Begin
Prompt and get QtyApple
Prompt and get Cost
if QtyApple > 0
Compute: TotalCost = Cost * QtyApple
End if
Display TotalCost
End

F

QtyApple > 0?

T

Compute:
TotalCost = Cost * QtyApple

Print TotalCost

End
BS (Sept 2012)

8
Example – Relational Operator
• Based on the refined algorithm, the C program is as follows:

BS (Sept 2012)

9
if with Compound Statements
• In the example that we have seen so far, there is only one
statement to be executed after the if statement.
• To execute more than one statement after the condition is
satisfied, we have to put curly braces { } around those
statements.
• Syntax:
if (condition)
{
multiple then-statements;
}

• Example:

F

QtyApple > 0?

T

Print message

if (QtyApple > 0)
{
printf(“Calculating the total costn”);
Total = Cost * QtyApple;
}
BS (Sept 2012)

Compute:
TotalCost = Cost * QtyApple

10
Example – Equality Operator
• This example demonstrates the use of equality operators ==
and !=
• Note that == is different that =. Why?
Prompt and get
status

F

status == 1?

T

Print “Kids”

F

status != 0?

T

Print “Adults”

BS (Sept 2012)

11
Exercise
What is the output of this program?
If values entered are:
a)
b)
c)

the

789 and 12
44 and 44
3 and 9901

BS (Sept 2012)

12
Topic 1-2
SIMPLE if…else SELECTION

BS (Sept 2012)

13
Simple if..else
• Is used when a statement or group of statements is
to be executed when the logical expression of the
condition is FALSE.
• Syntax:
No semicolon at
if (condition)
else

the end of the if
and else.

Single then-statement ;
Single else-statement ;

• Example:

F

if (QtyApple > 0)
Total = Cost * QtyApple;
else
printf(“Invalid quantity!n”);

BS (Sept 2012)

Print message

QtyApple > 0?

T

Compute:
TotalCost = Cost
* QtyApple

14
if…else with Compound Statements
• put curly braces { } around a group of statements
• Syntax:
Example: if (QtyApple > 0)
{
if (condition)
{
Multiple then-statements ;
}
else
{
Multiple else-statements;
}

printf(“Calculating the total costn”);
Total = Cost * QtyApple;

}
else
{
printf(“Invalid quantity!n”);
Total = 0.0;
}

F

QtyApple > 0?

Print message –
invalid quantity

Total = 0.0

T

Print message

Compute:
TotalCost = Cost * QtyApple

BS (Sept 2012)

15
Other Variations of Syntax of if…else
1. With one then-statement and multiple elsestatements. Syntax:
if (condition)
else
{
F

QtyApple > 0?

Print message –
invalid quantity

}

T

Single then-statement;
Multiple else-statements;

Compute:
TotalCost = Cost * QtyApple

Example:

Total = 0.0

if (QtyApple > 0)
Total = Cost * QtyApple;
else
{
printf(“Invalid quantity!n”);
Total = 0.0;
flag = „I‟;
}

flag = „I‟

BS (Sept 2012)

16
Other Variations of Syntax of if…else
2. With multiple then-statements and one elsestatement.
Syntax: if (condition)
{
}
else

Multiple then-statements;
single else-statement ;

F

Example:
if (QtyApple > 0)
{
Total = Cost * QtyApple;
flag = „V‟;
}
else
printf(“Invalid quantity!n”);

QtyApple > 0?

T

Compute:
TotalCost = Cost * QtyApple

Print message –
invalid quantity
flag = „I‟

BS (Sept 2012)

17
Effect of Omitting { }
• This what might happens if the { } are omitted
int score;
printf(“Enter the score: ”);
scanf(“%d”,&score);

Enter the score: 75
You have done very well
I‟ll give you a present
Sorry no present for you
Go and study more

if (score >= 60)
{
printf(“You have done very welln”);
printf(“I‟ll give you a presentn”);
}
else
printf(“You have failed the coursen”);
printf(“Sorry no present for youn”);
printf(“Go and study more”);

BS (Sept 2012)

18
Test your skill
• What happens if we omit the { }?
int score;
printf(“Enter the score: ”);
scanf(“%d”,&score);
if (score >= 60)
printf(“You have done very welln”);
printf(“I‟ll give you a presentn”);

else
{
printf(“You have failed the coursen”);
printf(“Sorry no present for youn”);
printf(“Go and study more”);
}

BS (Sept 2012)

19
Conditional Operator ( ? : )
• Used to simplify an if…else statement.
• Syntax:
( condition) ? Single then-statement : single else-statement;

• The statement above is equivalent to:
if (condition)
single then-statement;
else
single else-statement;

BS (Sept 2012)

20
Example
• if…else statement:
if (total > 60)
printf("Passed!!n");
else
printf("Failed!!n");

F

Print “Failed”

total > 0?

T

Print “Passed”

• Conditional statement:
printf("%s!!n", total > 60? "Passed" : "Failed");

OR
total > 60 ? printf("Passedn") : printf(“Failedn");

BS (Sept 2012)

21
Example 2
#include <stdio.h>
void main(void)
{
char grade;
int marks;
printf("Enter marks");
scanf("%dn", &marks);
grade = (marks > 60)? 'P': 'F';
printf("nGrade = %cn", grade);
}
(marks > 60)? printf("%c",'P'): printf("%c",'F');
BS (Sept 2012)

22
Topic 1-3
HANDLING MULTIPLE CONDITIONS
BS (Sept 2012)

23
Multiple Conditions – Apples Case
• Re-call that in the Apples Case problem, we have identified
two conditions/ constraints:
1.
2.

The quantity purchased must be more than zero
The cost per Kg apples must be more than zero

• So far, we have handled only the first condition in these
statements: if (QtyApple > 0)
Total = Cost * QtyApple;

• We can get our program to check multiple conditions in one
logical expression, using logical operator &&. Example:
if (QtyApple > 0 && Cost > 0)
Total = Cost * QtyApple;

BS (Sept 2012)

24
Logical Operators
• To connect two conditions:
Operator

Read as

Evaluation

Example

&&

AND

All the conditions must
be true for the whole
expression to be true.

if (x == 10 && y == 9)

The truth of one
condition is enough to
make the whole
expression true

if (x == 10 || y == 9)

Reverse the meaning
of a condition

if (!(points > 90))

||

!

OR

NOT

The if condition is true only when value
x is 10, AND value of y is 9.

The if condition is true when either one
of x OR y has the right value.

Means if points NOT bigger than 90

BS (Sept 2012)

25
Results of a Logical Expression
• Each logical expression with multiple conditions has either
True or False value, depending of the value of each condition
in it.
• This table lists possible result of a logical expression. Symbols
A and B indicate conditions.
A

B

A && B

A || B

!A

!B

True

True

True

True

False

False

True

False

False

True

False

True

False

True

False

True

True

False

False

False

False

False

True

True

BS (Sept 2012)

26
Example
#include<stdio.h>
void main ( )
{
int x=5, y=0;;
printf(“x=%d

y=%dnn”, x,y);

if (x>0 && y>=0)
printf(“x greater than zero and ”
“y greater than or equal to zeronn”);
if (x==0 || y==0)
printf(“x and y equal to zeronn”);
if (!(x==y))
printf(“x is not equal to yn”);
}
x=5

y=0

x greater than zero and y greater than or equal to zero
x and y equal to zero
X is not equal to y

BS (Sept 2012)

27
Exercise
• What is the output of this program?
If input data are:
– f 25
– f 17

- m 25
- m 17

- F 25
- F 17

- M 25
- M 17

#include<stdio.h>
void main ( )
{
char gender;
int age;
float loan;
printf(“Enter your gender (f/F or m/M) and age:”);
scanf(“%c %d”, &gender, &age);
if (gender == „f‟ && age > 20)
{
car_loan = 200000.00;
printf(“Your car loan is %.2fn”, loan);
printf(“Well done.n”);
}
}
BS (Sept 2012)

28
Evaluating Multiple Operators in a Logical Expression
• The C rules for evaluating logical expression with multiple mix
of operators are parentheses rule, precedence rule and
associativity rule.
• For a complete list, refer to Appendix C (Hanly &Koffman)
Precedence

Operation

Highest (evaluated first)
<

Lowest (evaluated last)

Associativity

[ ]( )
!
> <=
== !=
&&
||
?:

L
L
L
L
L
L
R

BS (Sept 2012)

>=

29
Example
Single variable – returns
True or False based
on its value
-0 : False
- 1(non-zero): True

#include<stdio.h>
void main ( )
{
int x=8, b=-3, c=0, x;
if(a) printf(“a=%d,
if(b) printf(“b=%d,

!a=%dn”, a, !a);
!b=%dn”, a, !a);

if(c) printf(“Never gets printedn”);
else printf(“c=%d, !c=%dn”, c, !c);

a=8 !a=0
b=-3 !a=0
c=0 !c=1
Answer is FALSE
x=1 !x=0

if (a>b && B>c || a==b) printf(“Answer is TRUEn”);
else printf(“Answer is FALSEn”);
logical expression –
returns True or False

x = a>b || b>c && a==b;

printf(“x=%d,

!x=%dn”, x, !x);

}

BS (Sept 2012)

and the result can be
assigned to an integer
variable
30
Topic 1-4
NESTED if…else SELECTION

BS (Sept 2012)

31
What is Nested if..else?
• if and if…else contained in another if…else selection.
• However, as if…else statements become nested, programs
become harder to understand.
– To improve readability, indent each pair of if…else statement

• Example syntax (*numbers of ‘if’s and the numbers of ‘else’s are not necessarily equal):
if (outer-condition)
{
…
if (inner1-condition)
{ inner1 -then-statement; }
else
{ inner1-else-statement n; }
}
else
{
…
if (inner2-condition)
{ inner 2-then-statement; }
else
{ inner2-else-statement n; }
}

//if outer is True, execute this block

//if inner1 is True, execute this block
//if inner1 is False, execute this block
//if outer is False, execute this block
//if inner2 is True, execute this block
//if inner2 is False, execute this block

BS (Sept 2012)

32
Example
#include<stdio.h>
void main ( )
{
int day, time;
printf(“Enter day and time: ”);
scanf(“%d %d”, &day, &time);

Enter day and time: 3 1000

if (day>0 && day<=6)
Relax
{
if (time<=900) printf(“nSleepn”);
else
{
if (time <=1900) printf(“nWorkn”);
else printf(“nRelaxn”);
}
}
else
{
if (time<=1100) printf(“nSleepn”);
else printf(“nHave funn”);
}

Draw a flowchart
for this program

}

BS (Sept 2012)

33
Topic 1-5
if…else if SELECTION

BS (Sept 2012)

34
What is if…else if selection?
•
•

if (score >= 90)
printf(“An”);

One type of nested selection structure
If any one of the condition is already
satisfied, the other conditions will be
ignored completely.

F
F
F
F

Print
“F”

score>=80?

score>=70?

score>=60?

T

score>=90?

T

else if (score >= 80)
printf(“Bn”);

T
Print
“A”

T
Print
“B”

else if (score >= 70)
printf(“Cn”);
else if (score >= 60)
printf(“Dn”);
else
printf(“Fn”);

Print
“C”

Print
“D”

BS (Sept 2012)

35
Re-writing if…else if
• if..else if statements can be re-written to multiple single
if statements. But this applies to condition that uses equality

operator only. Example:
…
if (number == 1)
printf(“Onen”);
else if (number == 2)
printf(“Twon”);
else if (number == 3)
printf(“Threen”);
else
printf(“Othersn”);

…
if (number == 1)
printf(“Onen”);
if (number == 2)
printf(“Twon”);
if (number == 3)
printf(“Threen”);
if (number < 1 && number > 3)
printf(“Othersn”);

Enter the score: 2
Two

Enter the score: 2
Two

BS (Sept 2012)

36
Test your skill
• What are the outputs of these programs segments? If value of
score entered is 85
if (score >= 90)
printf(“An”);
else if (score >= 80)
printf(“Bn”);
else if (score >= 70)
printf(“Cn”);
else if (score >= 60)
printf(“Dn”);
else
printf(“Fn”);

if (score >= 90)
printf(“An”);
if (score >= 80)
printf(“Bn”);
if (score >= 70)
printf(“Cn”);
if (score >= 60)
printf(“Dn”);
if (score < 60)
printf(“Fn”);

• What’s the effect of re-writing the above if..else if
statements to multiple if statements?
BS (Sept 2012)

37
Exercise
• Write a program that prompts the users to
enter
the value of Ritcher scale number (n), and
print its equivalent effect as a message to the users
based on the following table:
Ritcher scale number (n)
n < 5.0
5.0 <= n < 5.5
5.5 <= n < 6.5
6.5 <= n < 7.5
n >= 7.5

Effect
Little or no damage
Some damage
Serious damage: walls may crack or
fall
Disaster: house or building may
collapse
Catastrophe: most buildings
destroyed

BS (Sept 2012)

38
Topic 1-6
switch SELECTION

BS (Sept 2012)

39
switch Statement
• A switch statement is used to choose one choice
from multiple cases and one default case.
• Syntax:
switch (ControlVariable)
{
case constant 1: statement;
break;
case constant-n: statement;
break;
default: statement;
}

The break statement is needed so
that once a case has been executed,
it will skip all the other cases and go
outside the switch statement.

The default clause is executed if
the cases are not met.
BS (Sept 2012)

40
Rules for switch Statement
1. The value for ‘case’ must be integer or character only.
– Examples:

switch (number)
{
case 1 :
num += 2;
break;
}

if (number==1)
num += 2;

switch (color)
{
case „R‟ :
colorstr = „r‟;
break;
}

The value for
each case is
followed by
colon (:).

if (color==„R‟)
colorstr = „r‟;

2. The value checked in each ‘case’ must be constant only
and not values in range. case 1 :
case >= 1 :
√
BS (Sept 2012)

X
41
Example
• The logic of this switch selection is similar to if…else if
#include <stdio.h>
void main()
{
int num;
printf(“Enter number:");
scanf("%d", &num);

F
F
F

Print
“False grade”

num==3?

switch (num)
{
case 1: printf("Bad (D)n");break;
case 2: printf("Good (C)n");break;
case 3: printf("Excellent (A)n");break;
default: printf(“False graden");
}

num==1?

num==2?

T

T

T
Print
“Bad (D)”

Print
“Good (C)”

Print
“Excellent (A)”

}
Enter number: 3
Excellent (A)
BS (Sept 2012)

42
Omitting break Statement
#include <stdio.h>
void main()
{
int majorCode;

If the break statement is omitted, the
execution will be carried out to the next
alternatives until the next break statement is
found.

printf("Enter your majoring code: ");
scanf("%d", &majorCode);
switch(majorCode)
{
case 1 :
case 3 :
case 5 : printf(“nScience Studentn”);
break;
case 2 :
case 4 : printf(“nArt Studentn”);
} /* end_switch */

Enter your majoring code: 3

}

Science Student
BS (Sept 2012)

43
Example
char grade;
printf(“Enter the grade you scored:”);
scanf(“%c”,&grade);
switch (grade)
{
case „a‟:
case „A‟:
printf(“Excellent!!n”);
printf(“You brilliant..n”);
break;
case „b‟:
case „B‟:
printf(“Job well done!!n”);
printf(“You deserve it..n”);
break;
default:
printf(“undefined graden”);
}

BS (Sept 2012)

• Observe the equivalent
logical expression. What
can you conclude from
these two program
segments?
if (grade == „a‟ || grade == „A‟)
{
printf(“Excellent!!n”);
printf(“You brilliant..n”);
}
else if (grade == „b‟ || grade == „B‟)
{
printf(“Job well done!!n”);
printf(“You deserve it..n”);
}
else
printf(“undefined graden”);

44
Exercise
1. Using switch statement, write a program
that reads a positive integer number
between 1 to 5, and prints the word equivalent to
it.
For example, if the user enters 5, the program
should print the word “Five” to the screen.

BS (Sept 2012)

45
Topic 2
LOOPING
BS (Sept 2012)

46
Intro to Looping
• Re-call the Apples problem:
Compute and display the total cost of apples given the number of
kilogram (Kg) of apples purchased and the cost per Kg of apples

• Before this, we’ve learned to get our program to make decisions using
Selection Structure.
• With the program, when a cashier keys in number of kilogram of apples
purchased and the cost per Kg of apples the computer will output the
total cost of apples purchased for one customer. However, to calculate the
total cost for 100 customers, the cashier would need to execute this
program 100 times!
• So, the methods by which it is possible to repeat processing without
executing the program or writing the same statements over and over is
called Looping or Iteration using Repetition Structure.

BS (Sept 2012)

47
What is Repetition Structure?
• Used to repeat a block of statements a number of
times (loop) until a certain condition is met without
having to write the same statements multiple times.
• Two design of loops:
• To execute a number of
instructions from the
program for a finite, predetermined number of
time
• Loop depends of
arithmetic or conditional
expression.
Counter-controlled

• To execute a number of
instructions from the
program indifinitely until
the user tells it to stop or
a special condition is met
• Loop depends on
a sentinel value.

BS (Sept 2012)

Sentinel-controlled

48
Types of Looping
1

while

2

do…while

3

for

while (condition)
LoopBody-statement;

NO semicolon (;)

do
LoopBody-statement;
while (condition);

for (InitializationExp; Condition; UpdateExp)
LoopBody-statement;
Exp = Expression

BS (Sept 2012)

49
Topic 2-1
while LOOP

BS (Sept 2012)

50
while Statement
• Syntax:

an expression that can return true or false

while (condition)
single LoopBody-statement;
while (condition)
{
multiple loopBody-statements;
}

• Enclose a group of loop body statements within the braces
{}
• As long as the condition is met (returns true), the statement
inside the while loop will always get executed.
• When the condition is no longer met (returns false), the
program will continue on with the next instruction (the one
after the while loop).
BS (Sept 2012)

51
1. Counter-controlled while Loop
• Used to execute a number of instructions from the program for a
finite, pre-determined number of time
• Loop depends of arithmetic or conditional expression.
total is the loop controlvariable
Total = 1
Total = 2
Total = 3

In this case, this loop will keep on
looping until the counter total
variable is 5. Once value of total
is 6, the loop will terminate

...
int total = 1;
while (total <= 3)
{
printf(“Total = %dn”, total);
total++;
}
x++;
...
BS (Sept 2012)

F

x++

total=1

total <= 3?

T

Print value
of total

total++

52
Example
#include<stdio.h>
main ( )
{
printf(“Hello
printf(“Hello
printf(“Hello
printf(“Hello
printf(“Hello
}

Worldn”);
Worldn”);
Worldn”);
Worldn”);
Worldn”);

Hello
Hello
Hello
Hello
Hello

World
World
World
World
World

Begin

#include<stdio.h>
main ()
{
int num = 1;

num=1

while(num < 6)
{
printf("Hello Worldn");
num++;
}
}

F

End

num < 6?

T

Print “Hello
World”

num++

BS (Sept 2012)

53
Example 2
• You may allow the user to set the number of
iteration as shown in example below :
Begin

#include<stdio.h>
void main (void)
{
int counter=1, n=0;
printf(“Number of iteration?: “);
scanf(“%d”, &n);
while(counter <= n)
{
printf("Hello Worldn");
counter++;
}

counter=1, n=0
Prompt and
get n

F

}
// in this example the output varies
depending on the value of n entered
by the user
BS (Sept 2012)

End

counter < n?

T

Print “Hello
World”

counter++

54
Exercise
1. For the following code fragment:
sum =0;
count = 2;
while (count <= 5)
{
sum = sum + count;
count = count + 3;
}

– How many times will the while loop body be executed?
– What will be the end values computed for the variables sum
and count?

2. Write a program that reads 3 integer numbers and
prints the sum of the numbers. Repeat the reading and
printing processes 10 times using while loop.
BS (Sept 2012)

55
2. Sentinel-Controlled while Loop
• Counter control loop is used when we know beforehand how
many iteration that the loop should execute.
• There will be cases where we (as the programmer) do not
know how many times the loop should be executed, because
the decision is up to the users.
• In this case, to terminate the loop, we need to use ‘sentinel
controlled loop’ method
• In order to exit from the loop, the user must enter a unique
data value, called a sentinel value.
• The sentinel value must be a value that could not normally
occur as data.

BS (Sept 2012)

56
2. Sentinel-Controlled while Loop
• The algorithm for sentinel-controlled while loop:
Read/assign a value to control variable
While value of the control variable is not sentinel value
process the value
read the next value
end_while

F

Get a value

Value != sentinel
value?

T

Process value

Get next
value

• Consider this problem:

– Write a program that reads several integer numbers from the user and
prints the sum of the numbers. The program stops reading numbers
from the users when they enter ZERO.
BS (Sept 2012)

57
Example

Prompt and
get num

• The sentinel value in this case is ZERO
F

#include <stdio.h>
void main(void)
{
int num, sum = 0;

sum += num

Print value
of sum

Prompt and
get num

printf(“Enter a number [zero to end]: ”);
scanf(“%d”,&num);
while (num != 0)
{
sum += num;
printf(“Enter a number [zero to end]: ”);
scanf(“%d”,&num);
Enter a
}
Enter a
Enter a
printf(“Sum = %dn”, sum);

Sentinel value ZERO will
terminate the loop

number
number
number
Enter a number
Sum = 7

}
BS (Sept 2012)

T

num != 0?

[zero
[zero
[zero
[zero

to
to
to
to

end]:
end]:
end]:
end]:

3
-6
10
0
58
Example
#include <stdio.h>
Sentinel value -99 will terminate
main ()
the loop
{
int sum=0, score=0, count=0;
printf("Enter first score or (-99 to quit):");
scanf("%d", &score);
while (score != -99)
{
count++;
sum += score;
printf("Enter next score or (-99 to quit):");
scanf("%d", &score);
F
}
printf("Sum of %d scores: %d", count, sum);
}

Print value of
count and sum

Enter first score (or -99 to quit): 80
Enter next score (or -99 to quit): 77
Enter next score (or -99 to quit): -99
Sum of 2 scores: 157

BS (Sept 2012)

Prompt and
get score

score!= -99?

T

count++

sum += score

Prompt and
get score

59
Exercise
1. Write a program that calculates and prints the
average of several real numbers. Assume the last
value read is the sentinel 9.9. Use a while loop to
accomplish the task. Sample input/ouput:
10.0 12.3 5.6 21.3 9.9
Average: 8.6

2. Write a program that computes and displays the sum of a
collection of Celsius temperatures entered until a sentinel
value of -275 is entered.

BS (Sept 2012)

60
Topic 2-2
do…while LOOP

BS (Sept 2012)

61
1. Counter-controlled do/while Loop
• Syntax:

NO semicolon

do
single LoopBody-statement;
while (condition);

do
{
multiple LoopBody-statements;
} while (condition);

Semicolon here is a MUST

• the LoopBody-statement inside it will be executed once no
matter what.
• Then only the condition will be checked to decide whether
the loop should be executed again or just continue with the
rest of the program.
BS (Sept 2012)

62
Example
#include<stdio.h>
main ( )
{
printf(“Hello Worldn”);
printf(“Hello Worldn”);
printf(“Hello Worldn”);
printf(“Hello Worldn”);
printf(“Hello Worldn”);
}

Hello
Hello
Hello
Hello
Hello

World
World
World
World
World
Begin

#include<stdio.h>
main ()
{
int num = 1;

num=1

Print “Hello
World”

do
{
printf("Hello Worldn");
num++;
} while(num <=5);

num++

F

num <= 5?

T

}
End
BS (Sept 2012)

63
Example 2
• You may allow the user to set the number of
iteration as shown in example below :
Begin

#include<stdio.h>
void main (void)
{
int counter=1, n=0;
printf(“Number of iteration?: “);
scanf(“%d”, &n);

num=1
Prompt and
get n

do {
printf("Hello Worldn");
counter++;
} while(counter <= n);

Print “Hello
World”

}
// in this example the output varies
depending on the value of n entered
by the user

counter++

F

counter <= n?

T

End
BS (Sept 2012)

64
while Loop vs do..while Loop
int total = 10;

int total = 10;

while (total < 10)
{
printf(“Total = %dn”, total);
total++;
}

do
{
printf(“Total = %dn”, total);
total++;
} while (total < 10);
printf(“Bye”);

printf(“Bye”);

total=10

while loop

total=10

Print value
of total

do…while
F

Print “Bye”

total < 10?

T

loop

total++

Print value
of total
F
total++

total < 10?

T

Print “Bye”
BS (Sept 2012)

65
Exercise
1. For the following code fragment:
sum =0;
count = 2;
do {
sum = sum + count;
count = count + 3;
} while (count <= 5);

– How many times will the do…while loop body be executed?
– What will be the end values computed for the variables sum
and count?

2.

Re-write the program that reads 3 integer numbers and prints the sum of
the numbers, which keeps on repeating the reading and printing
processes 10 times using do…while loop.

BS (Sept 2012)

66
2. Sentinel-controlled do/while Loop
• The algorithm for sentinel-controlled do…while loop:
Start do
process the value
read a value to the control variable
While value of the control variable is not sentinel value

• Example:

int sum=0, score=0, count=0;
Enter score (or -99 to quit): -99

do
{

Sum of 1 scores: 0
count++;
sum += score;
printf("Enter score or (-99 to quit):");
scanf("%d", &score);
} while (score != -99);
printf("nSum of %d scores: %d", count, sum);

BS (Sept 2012)

67
Exercise
1. Re-write the program that calculates and prints
the average of several real numbers after the last
value read is the sentinel 9.9 by using a do…while
loop to accomplish the task. Sample input/output:
10.0 12.3 5.6 21.3 9.9
Average: 8.6

2. Re-write the program that computes and displays the sum of
a collection of Celsius temperatures entered until a sentinel
value of -275 is entered using a do…while loop.

BS (Sept 2012)

68
Topic 2-3
for LOOP

BS (Sept 2012)

69
for Loop
• Syntax:

MUST semicolons
NO semicolon

for (InitializationExp; Condition; UpdateExp)
single LoopBody-statement;
for (InitializationExp; Condition; UpdateExp)
{
multiple LoopBody-statements;
}

InitializationExp : initialize the loop control variable
Condition : determine whether the condition or test expression
returns True or false
UpdateExp : change value of the loop control variable at the end
of each loop
BS (Sept 2012)

70
1. Counter-controlled for Loop
• Example:

Control variable

int total;
for (total = 1; total <= 3; total++)
printf(“Total = %dn”, total);

Total = 1
Total = 2
Total = 3

total=1

F

total <= 3?

T

Print value
of total

total++

BS (Sept 2012)

71
Example 2
• You may allow the user to set the number of
iteration as shown in example below :
Begin

#include<stdio.h>
void main (void)
{
int counter=1, n=0;
printf("Number of iteration?: ");
scanf("%d", &n);
for(counter=1; counter<=n; counter+++)
printf("Hello Worldn");
}

counter=1, n=0
Prompt and
get n

F

End

// in this example the output varies
depending on the value of n entered by
the user
BS (Sept 2012)

counter <= n?

T

Print “Hello
World”

counter++

72
while Loop vs for Loop
int total = 1;

Both produce same output and have similar order of execution!
Because using a for loop is just another way of writing a while loop.
int total;

while (total <= 3)
{
printf(“Total = %dn”, total);
total++;
}
printf(“Bye”);

for(total=1; total<=3; total++)
{
printf(“Total = %dn”, total);
}
printf(“Bye”);

total=1

F

Print “Bye”

total <= 3?

total=1

T

Print value
of total

F

Print “Bye”

total++

total <= 3?

T

Print value
of total

total++

BS (Sept 2012)

73
Differences between while Loops and for Loops
• Although the two are similar in their order of execution, they
are different as follows:
Item

for loop

while loop

Initialization
expression

Is one of the loop expressions

Must be given prior to the
loop

Condition (or test
expression )

Is one of the loop expressions

Is one of the loop expressions

Update expression

Is one of the loop expressions

Must be in the loop body

When number of
iteration is known

Is very convenient

Is less convenient

When number of
iteration is
unknown

Is less convenient

Is ver y convenient

BS (Sept 2012)

74
Omitting for Loop Expressions
• It is also possible to omit one or more of the
for loop expressions.
• HOW?
1. Assign initial value to control variable
• Example:
2.

Place semicolon without the
expression

int num=1;
for (;num<=5;num++)
{
printf("Hello Worldn");
}
BS (Sept 2012)

75
2. Sentinel-controlled for Loop
• Example:
#include <stdio.h>
main ()
{
int sum=0, score;
printf("Enter first score (or -99 to quit):");
for ( scanf("%d", &score); score != -99; scanf("%d", &score))
{
sum += score;
printf("Enter next score (or -99 to quit):");
}
printf("Sum of all scores: %d", sum);
}

BS (Sept 2012)

76
Topic 3
DATA VALIDATION
BS (Sept 2012)

77
Intro to Data Validation
• Good programmers would ensure that only valid data are
entered and processed by their programs.
• Say for example we want to write a program that reads
the score marks from the user, and print its equivalent
grade.
• Say that the valid score marks range is between 0 to100.
So, if user keys in value other than 0 to100, the program
should do something such as the following:
– Option 1: Tell the users that they have entered a wrong
input and terminate the program.
– Option 2: Tell the users that they have entered a wrong
input and ask them to reenter the input.
BS (Sept 2012)

78
Data Validation: if…else if
Option 1: Tell the users that they have entered a wrong input
and terminate the program.
printf(“Enter the score: ”);
scanf(“%d”,&score);
if (score >= 90 && score <= 100)
printf(“An”);
else if (score >= 80 && score < 90)
printf(“Bn”);
else if (score >= 70 && score < 80)
printf(“Cn”);
else if (score >= 60 && score < 70)
printf(“Dn”);
else if (score >= 0 && score < 60
printf(“Fn”);
else
printf(“Error, input should only be between 0 – 100 n”);

BS (Sept 2012)

79
Data Validation: while Loop
Option 2(1): Tell the users that they have entered a wrong
input and ask them to reenter the input using while loop.
printf(“Enter score: ”);
scanf(“%d”, &score);

Sentinel-controlled while loop
with multiple sentinel values in
the range of < zero or > 100

while (score < 0 || score > 100)
{
printf(“Sorry, input must be between 0 – 100n”);
printf(“Re-enter the score: ”);
scanf(“%d”,&score);
}
if (score >= 90 && score <= 100)
printf(“An”);
else if (score >= 80 && score < 90)
printf(“Bn”);
else if (score >= 70 && score < 80)
printf(“Cn”);
else if (score >= 60 && score < 70)
printf(“Dn”);
else
printf(“Fn”);
BS (Sept 2012)

80
Data Validation: do..while Loop
Option 2(2): Tell the users that they have entered a wrong
input and ask them to reenter the input using do…while loop.
do{
printf(“Enter score: ”);
scanf(“%d”,&score);
if (score < 0 || score > 100)
printf(“Sorry, input must be between 0 – 100n”);
}while (score < 0 || score > 100);
if (score >= 90 && score <= 100)
Sentinel-controlled
printf(“An”);
do…while loop with
else if (score >= 80 && score < 90)
multiple sentinel values in
printf(“Bn”);
the range of < zero or >
else if (score >= 70 && score < 80)
100
printf(“Cn”);
else if (score >= 60 && score < 70)
printf(“Dn”);
else
printf(“Fn”);
BS (Sept 2012)
81
Data Validation: for Loop
Option 2(3): Tell the users that they have entered a wrong
input and ask them to reenter the input using for loop.
printf("Enter the score:");
for ( scanf("%d", &score); score < 0 || score > 100; scanf("%d", &score))
{
printf(“Sorry, input must be between 0 – 100n”);
printf("Enter the score:");
}
if (score >= 90 && score
printf(“An”);
else if (score >= 80 &&
printf(“Bn”);
else if (score >= 70 &&
printf(“Cn”);
else if (score >= 60 &&
printf(“Dn”);
else
printf(“Fn”);

<= 100)
score < 90)
score < 80)
score < 70)

BS (Sept 2012)

Sentinel-controlled for
loop with multiple
sentinel values in the
range of < zero or > 100

82
Topic 4
COMBINATIONS OF CONTROL
STRUCTURES
BS (Sept 2012)

83
Possible Combinations
• Possible combinations are limitless. Four basic forms of
combinations are as follows:
1.
2.
3.
4.

One or more selection structures inside a repetition structure.
One or more repetition structures inside a selection structure.
Nested selection structures – one or more selection structures
inside a selection structure
Nested repetition structures – one or more repetition
structures inside a repetition structure

• This course covers the first three forms only and we have seen
examples of nested selection structures before.

BS (Sept 2012)

84
1. Selection Structures inside a Repetition Structure
• Example: a simple if..else inside a while loop
x=1

Prompt and
get status

F

Print
“Bye”

x <= 3?

F

T

status == 1?

Print
“Adults”

T
Print
“Kids”

x++

BS (Sept 2012)

85
2. Repetition Structures inside a Selection Structure
• Example: a while loop inside a simple if..else
x=1
Prompt and
get status

F

status == 1?

T
Print
“Kids”

F

x=1

x <= 3?

T

Print
“Adults”

x++

Print
“Bye”
BS (Sept 2012)

86
Exercise
1. Write C programs that calculate and
display the average of 10 floating point
numbers read from user by implementing while,
do…while and for loops to accomplish the task.
2. Write programs that keep printing the multiples of
the integers 2, namely 2, 4, 8, 16, 32, 64 and 128.
Your loop should terminate at 128.
Use while, do…while and for loops to
implement this.
•

Implement appropriate data validation
in the programs
BS (Sept 2012)

87
Topic 5
continue AND break STATEMENTS

BS (Sept 2012)

88
The break statement
• The continue and break statements are used to
modify the program flow when a selection structure
or a repetition structure is used.
• The break statement can be used to forced exit of
selection or terminate repetition structure.
• Example:
for (num=1;num<=5;num++)
{
if (num==2)
break;
printf("Hello Worldn");
}

BS (Sept 2012)

When the value of num is
equals to 2, the program
will terminate from the
for loop.
OUTPUT?

89
The break statement
• You can use the break statement at any time.
• This can be very useful if you want to stop running a
loop because a condition has been met other than
the loop end condition.
The while loop will run,
as long i is smaller then
twenty.
But, the while loop must
stop (break) if i equals to
ten

int i;
i = 0;
while ( i < 20 )
{
i++;
if ( i == 10)
break;
}

BS (Sept 2012)

90
The continue Statement
• Can be used to skip the rest of the loop body
statements and continue with the next repetition of
the loop (start from the top again - the loop variable
must still be incremented).
for (num=1;num<=5;num++)
• Example:
{
When the value of num is
equal to 2, the program
will skip the printf
statement and continue
with the for loop.

if (num==2)
continue;
/* end_if */
printf(“Number %dn”,num);
} /*end_for */

OUTPUT?

BS (Sept 2012)

91
The continue Statement
• In a for loop, any modification to the control
variable will be done before the condition is checked.
• In a while and do…while structures, the loop
condition will be checked as soon as the continue
statement is encountered to determine whether the
loop will be continued .
int i=0;
• Example:
In the example above, the
printf function is never
called because of the
continue statement.

while ( i < 20 )
{
i++;
continue;
printf("Nothing to seen");
}
BS (Sept 2012)

92
Summary
1.

2.

3.

We can get our C programs to make decisions using Selection
Structure including if, if…else, ?: operator, if…else if
and switch.
Also we can get our programs to repeat (loop) processing without
writing the same statements over and over using Repetition
Structure including while loop, do…while loop, for loop
All the while, do…while , and for loops can be
implemented as counter-controlled loop or sentinel-controlled
loop.
– When number of iteration is known, use counter-controlled
loop
– When decision to proceed with iteration depends on a value
or a range of values, use sentinel-controlled loop
BS (Sept 2012)

93
Summary
4. The expression of the condition in the selection and
repetition structures must be specified using Relational
operators (such as >, >=, <, <=) and Equality operators (==,
!=) and several conditions may be combined using Logical
operators (&&, ||, and !).
5. You may combine sequence, selection and repetition
structures in a C program
6. You may use the continue and break statements to
modify the program flow when a selection structure or a
repetition structure is used.

BS (Sept 2012)

94

More Related Content

Viewers also liked

Embedded systems
Embedded systemsEmbedded systems
Embedded systemsMitul Tank
 
Story why me god
Story   why me godStory   why me god
Story why me godMohit Singla
 
Decision making steps
Decision making stepsDecision making steps
Decision making stepsShahrier Haider
 
Structured problem solving
Structured problem solvingStructured problem solving
Structured problem solvingVaseem Ahamad
 
Structured problem solving - training package
Structured problem solving - training packageStructured problem solving - training package
Structured problem solving - training packageCraig Zedwick
 
The_evolution_and_practice_of_management_consultancy_globally
The_evolution_and_practice_of_management_consultancy_globallyThe_evolution_and_practice_of_management_consultancy_globally
The_evolution_and_practice_of_management_consultancy_globallyIsaac Gwumah
 
Practicing Structured Problem Solving Methodology
Practicing Structured Problem Solving MethodologyPracticing Structured Problem Solving Methodology
Practicing Structured Problem Solving MethodologySarthak Banerjee
 
Structured problem solving methodology,Tools and Techniques
Structured problem solving methodology,Tools and TechniquesStructured problem solving methodology,Tools and Techniques
Structured problem solving methodology,Tools and TechniquesWinning Minds Solutions
 
Mesics lecture 7 iteration and repetitive executions
Mesics lecture 7   iteration and repetitive executionsMesics lecture 7   iteration and repetitive executions
Mesics lecture 7 iteration and repetitive executionseShikshak
 
[Working in Groups Presentation] Chapter 10 - Structured & Creative Problem S...
[Working in Groups Presentation] Chapter 10 - Structured & Creative Problem S...[Working in Groups Presentation] Chapter 10 - Structured & Creative Problem S...
[Working in Groups Presentation] Chapter 10 - Structured & Creative Problem S...Duc Lai Trung Minh
 
Unit 5. Control Statement
Unit 5. Control StatementUnit 5. Control Statement
Unit 5. Control StatementAshim Lamichhane
 
History/Evolution of management Consultancy
History/Evolution of management ConsultancyHistory/Evolution of management Consultancy
History/Evolution of management ConsultancySunny Keshri
 
凯捷安永 分析及假设
凯捷安永 分析及假设凯捷安永 分析及假设
凯捷安永 分析及假设eshen
 
Structured Problem Solving
Structured Problem SolvingStructured Problem Solving
Structured Problem Solvingvenkatasirish
 
The Global 8D Problem Solving Process
The Global 8D Problem Solving ProcessThe Global 8D Problem Solving Process
The Global 8D Problem Solving ProcessFlevy.com Best Practices
 
foundation of decision making
foundation of decision makingfoundation of decision making
foundation of decision makingsweetpoo
 
Training structured problem solving by experts, general, 13 05-06
Training structured problem solving by experts, general, 13 05-06Training structured problem solving by experts, general, 13 05-06
Training structured problem solving by experts, general, 13 05-06Farha Ibrahim
 

Viewers also liked (20)

Embedded systems
Embedded systemsEmbedded systems
Embedded systems
 
03b loops
03b   loops03b   loops
03b loops
 
Story why me god
Story   why me godStory   why me god
Story why me god
 
Decision making steps
Decision making stepsDecision making steps
Decision making steps
 
Structured problem solving
Structured problem solvingStructured problem solving
Structured problem solving
 
Structured problem solving - training package
Structured problem solving - training packageStructured problem solving - training package
Structured problem solving - training package
 
The_evolution_and_practice_of_management_consultancy_globally
The_evolution_and_practice_of_management_consultancy_globallyThe_evolution_and_practice_of_management_consultancy_globally
The_evolution_and_practice_of_management_consultancy_globally
 
Practicing Structured Problem Solving Methodology
Practicing Structured Problem Solving MethodologyPracticing Structured Problem Solving Methodology
Practicing Structured Problem Solving Methodology
 
Structured problem solving methodology,Tools and Techniques
Structured problem solving methodology,Tools and TechniquesStructured problem solving methodology,Tools and Techniques
Structured problem solving methodology,Tools and Techniques
 
Structured approach to problem solving
Structured approach to problem solvingStructured approach to problem solving
Structured approach to problem solving
 
Mesics lecture 7 iteration and repetitive executions
Mesics lecture 7   iteration and repetitive executionsMesics lecture 7   iteration and repetitive executions
Mesics lecture 7 iteration and repetitive executions
 
[Working in Groups Presentation] Chapter 10 - Structured & Creative Problem S...
[Working in Groups Presentation] Chapter 10 - Structured & Creative Problem S...[Working in Groups Presentation] Chapter 10 - Structured & Creative Problem S...
[Working in Groups Presentation] Chapter 10 - Structured & Creative Problem S...
 
Unit 5. Control Statement
Unit 5. Control StatementUnit 5. Control Statement
Unit 5. Control Statement
 
History/Evolution of management Consultancy
History/Evolution of management ConsultancyHistory/Evolution of management Consultancy
History/Evolution of management Consultancy
 
凯捷安永 分析及假设
凯捷安永 分析及假设凯捷安永 分析及假设
凯捷安永 分析及假设
 
Structured Problem Solving
Structured Problem SolvingStructured Problem Solving
Structured Problem Solving
 
The Global 8D Problem Solving Process
The Global 8D Problem Solving ProcessThe Global 8D Problem Solving Process
The Global 8D Problem Solving Process
 
Six Steps of Shared Decision Making
Six Steps of Shared Decision MakingSix Steps of Shared Decision Making
Six Steps of Shared Decision Making
 
foundation of decision making
foundation of decision makingfoundation of decision making
foundation of decision making
 
Training structured problem solving by experts, general, 13 05-06
Training structured problem solving by experts, general, 13 05-06Training structured problem solving by experts, general, 13 05-06
Training structured problem solving by experts, general, 13 05-06
 

Similar to Programming note C#

ICP - Lecture 7 and 8
ICP - Lecture 7 and 8ICP - Lecture 7 and 8
ICP - Lecture 7 and 8Hassaan Rahman
 
presentation_python_11_1569171345_375360.pptx
presentation_python_11_1569171345_375360.pptxpresentation_python_11_1569171345_375360.pptx
presentation_python_11_1569171345_375360.pptxGAURAVRATHORE86
 
10-Lec - Nested IF Statement.pptx
10-Lec - Nested IF Statement.pptx10-Lec - Nested IF Statement.pptx
10-Lec - Nested IF Statement.pptxAqeelAbbas94
 
Switch.pptx
Switch.pptxSwitch.pptx
Switch.pptxAliAbro7
 
ch05.ppt
ch05.pptch05.ppt
ch05.pptNewsMogul
 
Testcase design techniques final
Testcase design techniques finalTestcase design techniques final
Testcase design techniques finalshraavank
 
11-ScriptsAndConditionals.ppt
11-ScriptsAndConditionals.ppt11-ScriptsAndConditionals.ppt
11-ScriptsAndConditionals.pptAnjali127411
 
Building high productivity applications
Building high productivity applicationsBuilding high productivity applications
Building high productivity applicationsHutomo Sugianto
 
Lecture 3 control_structures_i
Lecture 3 control_structures_iLecture 3 control_structures_i
Lecture 3 control_structures_iTony Apreku
 
FP 201 Unit 2 - Part 3
FP 201 Unit 2 - Part 3FP 201 Unit 2 - Part 3
FP 201 Unit 2 - Part 3rohassanie
 
Operators and expressions in C++
Operators and expressions in C++Operators and expressions in C++
Operators and expressions in C++Neeru Mittal
 
Lecture 01 - Introduction and Review.ppt
Lecture 01 - Introduction and Review.pptLecture 01 - Introduction and Review.ppt
Lecture 01 - Introduction and Review.pptMaiGaafar
 
CIS 1403 lab 4 selection
CIS 1403 lab 4 selectionCIS 1403 lab 4 selection
CIS 1403 lab 4 selectionHamad Odhabi
 
Conditional-Statement.pdf
Conditional-Statement.pdfConditional-Statement.pdf
Conditional-Statement.pdfssuser7a7cd61
 

Similar to Programming note C# (20)

ICP - Lecture 7 and 8
ICP - Lecture 7 and 8ICP - Lecture 7 and 8
ICP - Lecture 7 and 8
 
chap04-conditional.ppt
chap04-conditional.pptchap04-conditional.ppt
chap04-conditional.ppt
 
presentation_python_11_1569171345_375360.pptx
presentation_python_11_1569171345_375360.pptxpresentation_python_11_1569171345_375360.pptx
presentation_python_11_1569171345_375360.pptx
 
Ch3
Ch3Ch3
Ch3
 
10-Lec - Nested IF Statement.pptx
10-Lec - Nested IF Statement.pptx10-Lec - Nested IF Statement.pptx
10-Lec - Nested IF Statement.pptx
 
Switch.pptx
Switch.pptxSwitch.pptx
Switch.pptx
 
ch05.ppt
ch05.pptch05.ppt
ch05.ppt
 
Testcase design techniques final
Testcase design techniques finalTestcase design techniques final
Testcase design techniques final
 
Week 5
Week 5Week 5
Week 5
 
Week 5
Week 5Week 5
Week 5
 
11-ScriptsAndConditionals.ppt
11-ScriptsAndConditionals.ppt11-ScriptsAndConditionals.ppt
11-ScriptsAndConditionals.ppt
 
Building high productivity applications
Building high productivity applicationsBuilding high productivity applications
Building high productivity applications
 
Lecture 3 control_structures_i
Lecture 3 control_structures_iLecture 3 control_structures_i
Lecture 3 control_structures_i
 
FP 201 Unit 2 - Part 3
FP 201 Unit 2 - Part 3FP 201 Unit 2 - Part 3
FP 201 Unit 2 - Part 3
 
lesson 2.pptx
lesson 2.pptxlesson 2.pptx
lesson 2.pptx
 
Operators and expressions in C++
Operators and expressions in C++Operators and expressions in C++
Operators and expressions in C++
 
Lecture 01 - Introduction and Review.ppt
Lecture 01 - Introduction and Review.pptLecture 01 - Introduction and Review.ppt
Lecture 01 - Introduction and Review.ppt
 
MA3696 Lecture 7
MA3696 Lecture 7MA3696 Lecture 7
MA3696 Lecture 7
 
CIS 1403 lab 4 selection
CIS 1403 lab 4 selectionCIS 1403 lab 4 selection
CIS 1403 lab 4 selection
 
Conditional-Statement.pdf
Conditional-Statement.pdfConditional-Statement.pdf
Conditional-Statement.pdf
 

Recently uploaded

ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A BeĂąa
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 

Recently uploaded (20)

ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 

Programming note C#

  • 1. CHAPTER 5: Decision Making and Looping CSEB113 PRINCIPLES of PROGRAMMING CSEB134 PROGRAMMING I by Badariah Solemon BS (Sept 2012) 1
  • 2. Topics 1. Decision making using: – – – – – – Simple if selection Simple if…else selection and using ?: operator Handling multiple conditions Nested if…else selection if…else if selection switch selection 2. Looping: – – – – Design: Counter-controlled vs Sentinel-controlled Using while loop Using do…while loop Using for loop 3. Data validation in selection and repetition structures 4. Combinations of control structures 5. Using continue and break statements BS (Sept 2012) 2
  • 4. Intro to Decision Making • Re-call the Apples problem: Compute and display the total cost of apples given the number of kilogram (Kg) of apples purchased and the cost per Kg of apples • In this problem, we have identified two conditions/ constraints: 1. 2. The quantity purchased must be more than zero The cost per Kg apples must be more than zero • Because of those conditions, before the C program calculates the total cost of apples purchased, we must make it DECIDE that both conditions have been met. • We can get our C programs to make decisions of this sort using Selection Structure BS (Sept 2012) 4
  • 5. What is Selection Structure? • Take actions depending on the outcome of a condition. A condition is a logical expression that is either True or False. • General forms of selection structure (SYNTAX): if (condition) then-statement; else else-statement; if (condition) 3 then-statement; else if (condition) elseif-statement; … else else-statement; if(condition) then-statement; 1 2 (condition)? then-statement : else-statement; switch (ControlVariable) { case constant 1: statement; break; case constant-n: statement; break; default: statement; } BS (Sept 2012) 4 5
  • 6. Topic 1-1 SIMPLE if SELECTION BS (Sept 2012) 6
  • 7. if Selection • Is used when a statement or group of statements is to be executed when the logical expression of the condition is TRUE. an expression that can return true or false • Syntax: if (condition) single then-statement; No semicolon at the end of the if statement. – The expression of the condition must be specified using Relational and Equality operators as follows: Type Operator Meaning Example expression Result if x=5 and y=4 Relational > x is greater than y x > y 5 > 4 is TRUE < x is less than y x < y 5 < 4 is FALSE >= x is greater than or equal to y x >= y 5 >= 4 is TRUE <= x is less than or equal to y x <= y 5 <= 4 is FALSE == x is equal to y x == y 5 == 4 is FALSE != x is not equal to y x != y 5 != 4 is TRUE Equality BS (Sept 2012) 7
  • 8. Example – Relational Operator • Case Apples: the algorithm is refined by making the Begin program decide that the following condition is met: – Prompt and get QtyApple The quantity purchased must be more than zero Prompt and get Cost Begin Prompt and get QtyApple Prompt and get Cost if QtyApple > 0 Compute: TotalCost = Cost * QtyApple End if Display TotalCost End F QtyApple > 0? T Compute: TotalCost = Cost * QtyApple Print TotalCost End BS (Sept 2012) 8
  • 9. Example – Relational Operator • Based on the refined algorithm, the C program is as follows: BS (Sept 2012) 9
  • 10. if with Compound Statements • In the example that we have seen so far, there is only one statement to be executed after the if statement. • To execute more than one statement after the condition is satisfied, we have to put curly braces { } around those statements. • Syntax: if (condition) { multiple then-statements; } • Example: F QtyApple > 0? T Print message if (QtyApple > 0) { printf(“Calculating the total costn”); Total = Cost * QtyApple; } BS (Sept 2012) Compute: TotalCost = Cost * QtyApple 10
  • 11. Example – Equality Operator • This example demonstrates the use of equality operators == and != • Note that == is different that =. Why? Prompt and get status F status == 1? T Print “Kids” F status != 0? T Print “Adults” BS (Sept 2012) 11
  • 12. Exercise What is the output of this program? If values entered are: a) b) c) the 789 and 12 44 and 44 3 and 9901 BS (Sept 2012) 12
  • 13. Topic 1-2 SIMPLE if…else SELECTION BS (Sept 2012) 13
  • 14. Simple if..else • Is used when a statement or group of statements is to be executed when the logical expression of the condition is FALSE. • Syntax: No semicolon at if (condition) else the end of the if and else. Single then-statement ; Single else-statement ; • Example: F if (QtyApple > 0) Total = Cost * QtyApple; else printf(“Invalid quantity!n”); BS (Sept 2012) Print message QtyApple > 0? T Compute: TotalCost = Cost * QtyApple 14
  • 15. if…else with Compound Statements • put curly braces { } around a group of statements • Syntax: Example: if (QtyApple > 0) { if (condition) { Multiple then-statements ; } else { Multiple else-statements; } printf(“Calculating the total costn”); Total = Cost * QtyApple; } else { printf(“Invalid quantity!n”); Total = 0.0; } F QtyApple > 0? Print message – invalid quantity Total = 0.0 T Print message Compute: TotalCost = Cost * QtyApple BS (Sept 2012) 15
  • 16. Other Variations of Syntax of if…else 1. With one then-statement and multiple elsestatements. Syntax: if (condition) else { F QtyApple > 0? Print message – invalid quantity } T Single then-statement; Multiple else-statements; Compute: TotalCost = Cost * QtyApple Example: Total = 0.0 if (QtyApple > 0) Total = Cost * QtyApple; else { printf(“Invalid quantity!n”); Total = 0.0; flag = „I‟; } flag = „I‟ BS (Sept 2012) 16
  • 17. Other Variations of Syntax of if…else 2. With multiple then-statements and one elsestatement. Syntax: if (condition) { } else Multiple then-statements; single else-statement ; F Example: if (QtyApple > 0) { Total = Cost * QtyApple; flag = „V‟; } else printf(“Invalid quantity!n”); QtyApple > 0? T Compute: TotalCost = Cost * QtyApple Print message – invalid quantity flag = „I‟ BS (Sept 2012) 17
  • 18. Effect of Omitting { } • This what might happens if the { } are omitted int score; printf(“Enter the score: ”); scanf(“%d”,&score); Enter the score: 75 You have done very well I‟ll give you a present Sorry no present for you Go and study more if (score >= 60) { printf(“You have done very welln”); printf(“I‟ll give you a presentn”); } else printf(“You have failed the coursen”); printf(“Sorry no present for youn”); printf(“Go and study more”); BS (Sept 2012) 18
  • 19. Test your skill • What happens if we omit the { }? int score; printf(“Enter the score: ”); scanf(“%d”,&score); if (score >= 60) printf(“You have done very welln”); printf(“I‟ll give you a presentn”); else { printf(“You have failed the coursen”); printf(“Sorry no present for youn”); printf(“Go and study more”); } BS (Sept 2012) 19
  • 20. Conditional Operator ( ? : ) • Used to simplify an if…else statement. • Syntax: ( condition) ? Single then-statement : single else-statement; • The statement above is equivalent to: if (condition) single then-statement; else single else-statement; BS (Sept 2012) 20
  • 21. Example • if…else statement: if (total > 60) printf("Passed!!n"); else printf("Failed!!n"); F Print “Failed” total > 0? T Print “Passed” • Conditional statement: printf("%s!!n", total > 60? "Passed" : "Failed"); OR total > 60 ? printf("Passedn") : printf(“Failedn"); BS (Sept 2012) 21
  • 22. Example 2 #include <stdio.h> void main(void) { char grade; int marks; printf("Enter marks"); scanf("%dn", &marks); grade = (marks > 60)? 'P': 'F'; printf("nGrade = %cn", grade); } (marks > 60)? printf("%c",'P'): printf("%c",'F'); BS (Sept 2012) 22
  • 23. Topic 1-3 HANDLING MULTIPLE CONDITIONS BS (Sept 2012) 23
  • 24. Multiple Conditions – Apples Case • Re-call that in the Apples Case problem, we have identified two conditions/ constraints: 1. 2. The quantity purchased must be more than zero The cost per Kg apples must be more than zero • So far, we have handled only the first condition in these statements: if (QtyApple > 0) Total = Cost * QtyApple; • We can get our program to check multiple conditions in one logical expression, using logical operator &&. Example: if (QtyApple > 0 && Cost > 0) Total = Cost * QtyApple; BS (Sept 2012) 24
  • 25. Logical Operators • To connect two conditions: Operator Read as Evaluation Example && AND All the conditions must be true for the whole expression to be true. if (x == 10 && y == 9) The truth of one condition is enough to make the whole expression true if (x == 10 || y == 9) Reverse the meaning of a condition if (!(points > 90)) || ! OR NOT The if condition is true only when value x is 10, AND value of y is 9. The if condition is true when either one of x OR y has the right value. Means if points NOT bigger than 90 BS (Sept 2012) 25
  • 26. Results of a Logical Expression • Each logical expression with multiple conditions has either True or False value, depending of the value of each condition in it. • This table lists possible result of a logical expression. Symbols A and B indicate conditions. A B A && B A || B !A !B True True True True False False True False False True False True False True False True True False False False False False True True BS (Sept 2012) 26
  • 27. Example #include<stdio.h> void main ( ) { int x=5, y=0;; printf(“x=%d y=%dnn”, x,y); if (x>0 && y>=0) printf(“x greater than zero and ” “y greater than or equal to zeronn”); if (x==0 || y==0) printf(“x and y equal to zeronn”); if (!(x==y)) printf(“x is not equal to yn”); } x=5 y=0 x greater than zero and y greater than or equal to zero x and y equal to zero X is not equal to y BS (Sept 2012) 27
  • 28. Exercise • What is the output of this program? If input data are: – f 25 – f 17 - m 25 - m 17 - F 25 - F 17 - M 25 - M 17 #include<stdio.h> void main ( ) { char gender; int age; float loan; printf(“Enter your gender (f/F or m/M) and age:”); scanf(“%c %d”, &gender, &age); if (gender == „f‟ && age > 20) { car_loan = 200000.00; printf(“Your car loan is %.2fn”, loan); printf(“Well done.n”); } } BS (Sept 2012) 28
  • 29. Evaluating Multiple Operators in a Logical Expression • The C rules for evaluating logical expression with multiple mix of operators are parentheses rule, precedence rule and associativity rule. • For a complete list, refer to Appendix C (Hanly &Koffman) Precedence Operation Highest (evaluated first) < Lowest (evaluated last) Associativity [ ]( ) ! > <= == != && || ?: L L L L L L R BS (Sept 2012) >= 29
  • 30. Example Single variable – returns True or False based on its value -0 : False - 1(non-zero): True #include<stdio.h> void main ( ) { int x=8, b=-3, c=0, x; if(a) printf(“a=%d, if(b) printf(“b=%d, !a=%dn”, a, !a); !b=%dn”, a, !a); if(c) printf(“Never gets printedn”); else printf(“c=%d, !c=%dn”, c, !c); a=8 !a=0 b=-3 !a=0 c=0 !c=1 Answer is FALSE x=1 !x=0 if (a>b && B>c || a==b) printf(“Answer is TRUEn”); else printf(“Answer is FALSEn”); logical expression – returns True or False x = a>b || b>c && a==b; printf(“x=%d, !x=%dn”, x, !x); } BS (Sept 2012) and the result can be assigned to an integer variable 30
  • 31. Topic 1-4 NESTED if…else SELECTION BS (Sept 2012) 31
  • 32. What is Nested if..else? • if and if…else contained in another if…else selection. • However, as if…else statements become nested, programs become harder to understand. – To improve readability, indent each pair of if…else statement • Example syntax (*numbers of ‘if’s and the numbers of ‘else’s are not necessarily equal): if (outer-condition) { … if (inner1-condition) { inner1 -then-statement; } else { inner1-else-statement n; } } else { … if (inner2-condition) { inner 2-then-statement; } else { inner2-else-statement n; } } //if outer is True, execute this block //if inner1 is True, execute this block //if inner1 is False, execute this block //if outer is False, execute this block //if inner2 is True, execute this block //if inner2 is False, execute this block BS (Sept 2012) 32
  • 33. Example #include<stdio.h> void main ( ) { int day, time; printf(“Enter day and time: ”); scanf(“%d %d”, &day, &time); Enter day and time: 3 1000 if (day>0 && day<=6) Relax { if (time<=900) printf(“nSleepn”); else { if (time <=1900) printf(“nWorkn”); else printf(“nRelaxn”); } } else { if (time<=1100) printf(“nSleepn”); else printf(“nHave funn”); } Draw a flowchart for this program } BS (Sept 2012) 33
  • 34. Topic 1-5 if…else if SELECTION BS (Sept 2012) 34
  • 35. What is if…else if selection? • • if (score >= 90) printf(“An”); One type of nested selection structure If any one of the condition is already satisfied, the other conditions will be ignored completely. F F F F Print “F” score>=80? score>=70? score>=60? T score>=90? T else if (score >= 80) printf(“Bn”); T Print “A” T Print “B” else if (score >= 70) printf(“Cn”); else if (score >= 60) printf(“Dn”); else printf(“Fn”); Print “C” Print “D” BS (Sept 2012) 35
  • 36. Re-writing if…else if • if..else if statements can be re-written to multiple single if statements. But this applies to condition that uses equality operator only. Example: … if (number == 1) printf(“Onen”); else if (number == 2) printf(“Twon”); else if (number == 3) printf(“Threen”); else printf(“Othersn”); … if (number == 1) printf(“Onen”); if (number == 2) printf(“Twon”); if (number == 3) printf(“Threen”); if (number < 1 && number > 3) printf(“Othersn”); Enter the score: 2 Two Enter the score: 2 Two BS (Sept 2012) 36
  • 37. Test your skill • What are the outputs of these programs segments? If value of score entered is 85 if (score >= 90) printf(“An”); else if (score >= 80) printf(“Bn”); else if (score >= 70) printf(“Cn”); else if (score >= 60) printf(“Dn”); else printf(“Fn”); if (score >= 90) printf(“An”); if (score >= 80) printf(“Bn”); if (score >= 70) printf(“Cn”); if (score >= 60) printf(“Dn”); if (score < 60) printf(“Fn”); • What’s the effect of re-writing the above if..else if statements to multiple if statements? BS (Sept 2012) 37
  • 38. Exercise • Write a program that prompts the users to enter the value of Ritcher scale number (n), and print its equivalent effect as a message to the users based on the following table: Ritcher scale number (n) n < 5.0 5.0 <= n < 5.5 5.5 <= n < 6.5 6.5 <= n < 7.5 n >= 7.5 Effect Little or no damage Some damage Serious damage: walls may crack or fall Disaster: house or building may collapse Catastrophe: most buildings destroyed BS (Sept 2012) 38
  • 40. switch Statement • A switch statement is used to choose one choice from multiple cases and one default case. • Syntax: switch (ControlVariable) { case constant 1: statement; break; case constant-n: statement; break; default: statement; } The break statement is needed so that once a case has been executed, it will skip all the other cases and go outside the switch statement. The default clause is executed if the cases are not met. BS (Sept 2012) 40
  • 41. Rules for switch Statement 1. The value for ‘case’ must be integer or character only. – Examples: switch (number) { case 1 : num += 2; break; } if (number==1) num += 2; switch (color) { case „R‟ : colorstr = „r‟; break; } The value for each case is followed by colon (:). if (color==„R‟) colorstr = „r‟; 2. The value checked in each ‘case’ must be constant only and not values in range. case 1 : case >= 1 : √ BS (Sept 2012) X 41
  • 42. Example • The logic of this switch selection is similar to if…else if #include <stdio.h> void main() { int num; printf(“Enter number:"); scanf("%d", &num); F F F Print “False grade” num==3? switch (num) { case 1: printf("Bad (D)n");break; case 2: printf("Good (C)n");break; case 3: printf("Excellent (A)n");break; default: printf(“False graden"); } num==1? num==2? T T T Print “Bad (D)” Print “Good (C)” Print “Excellent (A)” } Enter number: 3 Excellent (A) BS (Sept 2012) 42
  • 43. Omitting break Statement #include <stdio.h> void main() { int majorCode; If the break statement is omitted, the execution will be carried out to the next alternatives until the next break statement is found. printf("Enter your majoring code: "); scanf("%d", &majorCode); switch(majorCode) { case 1 : case 3 : case 5 : printf(“nScience Studentn”); break; case 2 : case 4 : printf(“nArt Studentn”); } /* end_switch */ Enter your majoring code: 3 } Science Student BS (Sept 2012) 43
  • 44. Example char grade; printf(“Enter the grade you scored:”); scanf(“%c”,&grade); switch (grade) { case „a‟: case „A‟: printf(“Excellent!!n”); printf(“You brilliant..n”); break; case „b‟: case „B‟: printf(“Job well done!!n”); printf(“You deserve it..n”); break; default: printf(“undefined graden”); } BS (Sept 2012) • Observe the equivalent logical expression. What can you conclude from these two program segments? if (grade == „a‟ || grade == „A‟) { printf(“Excellent!!n”); printf(“You brilliant..n”); } else if (grade == „b‟ || grade == „B‟) { printf(“Job well done!!n”); printf(“You deserve it..n”); } else printf(“undefined graden”); 44
  • 45. Exercise 1. Using switch statement, write a program that reads a positive integer number between 1 to 5, and prints the word equivalent to it. For example, if the user enters 5, the program should print the word “Five” to the screen. BS (Sept 2012) 45
  • 47. Intro to Looping • Re-call the Apples problem: Compute and display the total cost of apples given the number of kilogram (Kg) of apples purchased and the cost per Kg of apples • Before this, we’ve learned to get our program to make decisions using Selection Structure. • With the program, when a cashier keys in number of kilogram of apples purchased and the cost per Kg of apples the computer will output the total cost of apples purchased for one customer. However, to calculate the total cost for 100 customers, the cashier would need to execute this program 100 times! • So, the methods by which it is possible to repeat processing without executing the program or writing the same statements over and over is called Looping or Iteration using Repetition Structure. BS (Sept 2012) 47
  • 48. What is Repetition Structure? • Used to repeat a block of statements a number of times (loop) until a certain condition is met without having to write the same statements multiple times. • Two design of loops: • To execute a number of instructions from the program for a finite, predetermined number of time • Loop depends of arithmetic or conditional expression. Counter-controlled • To execute a number of instructions from the program indifinitely until the user tells it to stop or a special condition is met • Loop depends on a sentinel value. BS (Sept 2012) Sentinel-controlled 48
  • 49. Types of Looping 1 while 2 do…while 3 for while (condition) LoopBody-statement; NO semicolon (;) do LoopBody-statement; while (condition); for (InitializationExp; Condition; UpdateExp) LoopBody-statement; Exp = Expression BS (Sept 2012) 49
  • 50. Topic 2-1 while LOOP BS (Sept 2012) 50
  • 51. while Statement • Syntax: an expression that can return true or false while (condition) single LoopBody-statement; while (condition) { multiple loopBody-statements; } • Enclose a group of loop body statements within the braces {} • As long as the condition is met (returns true), the statement inside the while loop will always get executed. • When the condition is no longer met (returns false), the program will continue on with the next instruction (the one after the while loop). BS (Sept 2012) 51
  • 52. 1. Counter-controlled while Loop • Used to execute a number of instructions from the program for a finite, pre-determined number of time • Loop depends of arithmetic or conditional expression. total is the loop controlvariable Total = 1 Total = 2 Total = 3 In this case, this loop will keep on looping until the counter total variable is 5. Once value of total is 6, the loop will terminate ... int total = 1; while (total <= 3) { printf(“Total = %dn”, total); total++; } x++; ... BS (Sept 2012) F x++ total=1 total <= 3? T Print value of total total++ 52
  • 54. Example 2 • You may allow the user to set the number of iteration as shown in example below : Begin #include<stdio.h> void main (void) { int counter=1, n=0; printf(“Number of iteration?: “); scanf(“%d”, &n); while(counter <= n) { printf("Hello Worldn"); counter++; } counter=1, n=0 Prompt and get n F } // in this example the output varies depending on the value of n entered by the user BS (Sept 2012) End counter < n? T Print “Hello World” counter++ 54
  • 55. Exercise 1. For the following code fragment: sum =0; count = 2; while (count <= 5) { sum = sum + count; count = count + 3; } – How many times will the while loop body be executed? – What will be the end values computed for the variables sum and count? 2. Write a program that reads 3 integer numbers and prints the sum of the numbers. Repeat the reading and printing processes 10 times using while loop. BS (Sept 2012) 55
  • 56. 2. Sentinel-Controlled while Loop • Counter control loop is used when we know beforehand how many iteration that the loop should execute. • There will be cases where we (as the programmer) do not know how many times the loop should be executed, because the decision is up to the users. • In this case, to terminate the loop, we need to use ‘sentinel controlled loop’ method • In order to exit from the loop, the user must enter a unique data value, called a sentinel value. • The sentinel value must be a value that could not normally occur as data. BS (Sept 2012) 56
  • 57. 2. Sentinel-Controlled while Loop • The algorithm for sentinel-controlled while loop: Read/assign a value to control variable While value of the control variable is not sentinel value process the value read the next value end_while F Get a value Value != sentinel value? T Process value Get next value • Consider this problem: – Write a program that reads several integer numbers from the user and prints the sum of the numbers. The program stops reading numbers from the users when they enter ZERO. BS (Sept 2012) 57
  • 58. Example Prompt and get num • The sentinel value in this case is ZERO F #include <stdio.h> void main(void) { int num, sum = 0; sum += num Print value of sum Prompt and get num printf(“Enter a number [zero to end]: ”); scanf(“%d”,&num); while (num != 0) { sum += num; printf(“Enter a number [zero to end]: ”); scanf(“%d”,&num); Enter a } Enter a Enter a printf(“Sum = %dn”, sum); Sentinel value ZERO will terminate the loop number number number Enter a number Sum = 7 } BS (Sept 2012) T num != 0? [zero [zero [zero [zero to to to to end]: end]: end]: end]: 3 -6 10 0 58
  • 59. Example #include <stdio.h> Sentinel value -99 will terminate main () the loop { int sum=0, score=0, count=0; printf("Enter first score or (-99 to quit):"); scanf("%d", &score); while (score != -99) { count++; sum += score; printf("Enter next score or (-99 to quit):"); scanf("%d", &score); F } printf("Sum of %d scores: %d", count, sum); } Print value of count and sum Enter first score (or -99 to quit): 80 Enter next score (or -99 to quit): 77 Enter next score (or -99 to quit): -99 Sum of 2 scores: 157 BS (Sept 2012) Prompt and get score score!= -99? T count++ sum += score Prompt and get score 59
  • 60. Exercise 1. Write a program that calculates and prints the average of several real numbers. Assume the last value read is the sentinel 9.9. Use a while loop to accomplish the task. Sample input/ouput: 10.0 12.3 5.6 21.3 9.9 Average: 8.6 2. Write a program that computes and displays the sum of a collection of Celsius temperatures entered until a sentinel value of -275 is entered. BS (Sept 2012) 60
  • 62. 1. Counter-controlled do/while Loop • Syntax: NO semicolon do single LoopBody-statement; while (condition); do { multiple LoopBody-statements; } while (condition); Semicolon here is a MUST • the LoopBody-statement inside it will be executed once no matter what. • Then only the condition will be checked to decide whether the loop should be executed again or just continue with the rest of the program. BS (Sept 2012) 62
  • 63. Example #include<stdio.h> main ( ) { printf(“Hello Worldn”); printf(“Hello Worldn”); printf(“Hello Worldn”); printf(“Hello Worldn”); printf(“Hello Worldn”); } Hello Hello Hello Hello Hello World World World World World Begin #include<stdio.h> main () { int num = 1; num=1 Print “Hello World” do { printf("Hello Worldn"); num++; } while(num <=5); num++ F num <= 5? T } End BS (Sept 2012) 63
  • 64. Example 2 • You may allow the user to set the number of iteration as shown in example below : Begin #include<stdio.h> void main (void) { int counter=1, n=0; printf(“Number of iteration?: “); scanf(“%d”, &n); num=1 Prompt and get n do { printf("Hello Worldn"); counter++; } while(counter <= n); Print “Hello World” } // in this example the output varies depending on the value of n entered by the user counter++ F counter <= n? T End BS (Sept 2012) 64
  • 65. while Loop vs do..while Loop int total = 10; int total = 10; while (total < 10) { printf(“Total = %dn”, total); total++; } do { printf(“Total = %dn”, total); total++; } while (total < 10); printf(“Bye”); printf(“Bye”); total=10 while loop total=10 Print value of total do…while F Print “Bye” total < 10? T loop total++ Print value of total F total++ total < 10? T Print “Bye” BS (Sept 2012) 65
  • 66. Exercise 1. For the following code fragment: sum =0; count = 2; do { sum = sum + count; count = count + 3; } while (count <= 5); – How many times will the do…while loop body be executed? – What will be the end values computed for the variables sum and count? 2. Re-write the program that reads 3 integer numbers and prints the sum of the numbers, which keeps on repeating the reading and printing processes 10 times using do…while loop. BS (Sept 2012) 66
  • 67. 2. Sentinel-controlled do/while Loop • The algorithm for sentinel-controlled do…while loop: Start do process the value read a value to the control variable While value of the control variable is not sentinel value • Example: int sum=0, score=0, count=0; Enter score (or -99 to quit): -99 do { Sum of 1 scores: 0 count++; sum += score; printf("Enter score or (-99 to quit):"); scanf("%d", &score); } while (score != -99); printf("nSum of %d scores: %d", count, sum); BS (Sept 2012) 67
  • 68. Exercise 1. Re-write the program that calculates and prints the average of several real numbers after the last value read is the sentinel 9.9 by using a do…while loop to accomplish the task. Sample input/output: 10.0 12.3 5.6 21.3 9.9 Average: 8.6 2. Re-write the program that computes and displays the sum of a collection of Celsius temperatures entered until a sentinel value of -275 is entered using a do…while loop. BS (Sept 2012) 68
  • 69. Topic 2-3 for LOOP BS (Sept 2012) 69
  • 70. for Loop • Syntax: MUST semicolons NO semicolon for (InitializationExp; Condition; UpdateExp) single LoopBody-statement; for (InitializationExp; Condition; UpdateExp) { multiple LoopBody-statements; } InitializationExp : initialize the loop control variable Condition : determine whether the condition or test expression returns True or false UpdateExp : change value of the loop control variable at the end of each loop BS (Sept 2012) 70
  • 71. 1. Counter-controlled for Loop • Example: Control variable int total; for (total = 1; total <= 3; total++) printf(“Total = %dn”, total); Total = 1 Total = 2 Total = 3 total=1 F total <= 3? T Print value of total total++ BS (Sept 2012) 71
  • 72. Example 2 • You may allow the user to set the number of iteration as shown in example below : Begin #include<stdio.h> void main (void) { int counter=1, n=0; printf("Number of iteration?: "); scanf("%d", &n); for(counter=1; counter<=n; counter+++) printf("Hello Worldn"); } counter=1, n=0 Prompt and get n F End // in this example the output varies depending on the value of n entered by the user BS (Sept 2012) counter <= n? T Print “Hello World” counter++ 72
  • 73. while Loop vs for Loop int total = 1; Both produce same output and have similar order of execution! Because using a for loop is just another way of writing a while loop. int total; while (total <= 3) { printf(“Total = %dn”, total); total++; } printf(“Bye”); for(total=1; total<=3; total++) { printf(“Total = %dn”, total); } printf(“Bye”); total=1 F Print “Bye” total <= 3? total=1 T Print value of total F Print “Bye” total++ total <= 3? T Print value of total total++ BS (Sept 2012) 73
  • 74. Differences between while Loops and for Loops • Although the two are similar in their order of execution, they are different as follows: Item for loop while loop Initialization expression Is one of the loop expressions Must be given prior to the loop Condition (or test expression ) Is one of the loop expressions Is one of the loop expressions Update expression Is one of the loop expressions Must be in the loop body When number of iteration is known Is very convenient Is less convenient When number of iteration is unknown Is less convenient Is ver y convenient BS (Sept 2012) 74
  • 75. Omitting for Loop Expressions • It is also possible to omit one or more of the for loop expressions. • HOW? 1. Assign initial value to control variable • Example: 2. Place semicolon without the expression int num=1; for (;num<=5;num++) { printf("Hello Worldn"); } BS (Sept 2012) 75
  • 76. 2. Sentinel-controlled for Loop • Example: #include <stdio.h> main () { int sum=0, score; printf("Enter first score (or -99 to quit):"); for ( scanf("%d", &score); score != -99; scanf("%d", &score)) { sum += score; printf("Enter next score (or -99 to quit):"); } printf("Sum of all scores: %d", sum); } BS (Sept 2012) 76
  • 77. Topic 3 DATA VALIDATION BS (Sept 2012) 77
  • 78. Intro to Data Validation • Good programmers would ensure that only valid data are entered and processed by their programs. • Say for example we want to write a program that reads the score marks from the user, and print its equivalent grade. • Say that the valid score marks range is between 0 to100. So, if user keys in value other than 0 to100, the program should do something such as the following: – Option 1: Tell the users that they have entered a wrong input and terminate the program. – Option 2: Tell the users that they have entered a wrong input and ask them to reenter the input. BS (Sept 2012) 78
  • 79. Data Validation: if…else if Option 1: Tell the users that they have entered a wrong input and terminate the program. printf(“Enter the score: ”); scanf(“%d”,&score); if (score >= 90 && score <= 100) printf(“An”); else if (score >= 80 && score < 90) printf(“Bn”); else if (score >= 70 && score < 80) printf(“Cn”); else if (score >= 60 && score < 70) printf(“Dn”); else if (score >= 0 && score < 60 printf(“Fn”); else printf(“Error, input should only be between 0 – 100 n”); BS (Sept 2012) 79
  • 80. Data Validation: while Loop Option 2(1): Tell the users that they have entered a wrong input and ask them to reenter the input using while loop. printf(“Enter score: ”); scanf(“%d”, &score); Sentinel-controlled while loop with multiple sentinel values in the range of < zero or > 100 while (score < 0 || score > 100) { printf(“Sorry, input must be between 0 – 100n”); printf(“Re-enter the score: ”); scanf(“%d”,&score); } if (score >= 90 && score <= 100) printf(“An”); else if (score >= 80 && score < 90) printf(“Bn”); else if (score >= 70 && score < 80) printf(“Cn”); else if (score >= 60 && score < 70) printf(“Dn”); else printf(“Fn”); BS (Sept 2012) 80
  • 81. Data Validation: do..while Loop Option 2(2): Tell the users that they have entered a wrong input and ask them to reenter the input using do…while loop. do{ printf(“Enter score: ”); scanf(“%d”,&score); if (score < 0 || score > 100) printf(“Sorry, input must be between 0 – 100n”); }while (score < 0 || score > 100); if (score >= 90 && score <= 100) Sentinel-controlled printf(“An”); do…while loop with else if (score >= 80 && score < 90) multiple sentinel values in printf(“Bn”); the range of < zero or > else if (score >= 70 && score < 80) 100 printf(“Cn”); else if (score >= 60 && score < 70) printf(“Dn”); else printf(“Fn”); BS (Sept 2012) 81
  • 82. Data Validation: for Loop Option 2(3): Tell the users that they have entered a wrong input and ask them to reenter the input using for loop. printf("Enter the score:"); for ( scanf("%d", &score); score < 0 || score > 100; scanf("%d", &score)) { printf(“Sorry, input must be between 0 – 100n”); printf("Enter the score:"); } if (score >= 90 && score printf(“An”); else if (score >= 80 && printf(“Bn”); else if (score >= 70 && printf(“Cn”); else if (score >= 60 && printf(“Dn”); else printf(“Fn”); <= 100) score < 90) score < 80) score < 70) BS (Sept 2012) Sentinel-controlled for loop with multiple sentinel values in the range of < zero or > 100 82
  • 83. Topic 4 COMBINATIONS OF CONTROL STRUCTURES BS (Sept 2012) 83
  • 84. Possible Combinations • Possible combinations are limitless. Four basic forms of combinations are as follows: 1. 2. 3. 4. One or more selection structures inside a repetition structure. One or more repetition structures inside a selection structure. Nested selection structures – one or more selection structures inside a selection structure Nested repetition structures – one or more repetition structures inside a repetition structure • This course covers the first three forms only and we have seen examples of nested selection structures before. BS (Sept 2012) 84
  • 85. 1. Selection Structures inside a Repetition Structure • Example: a simple if..else inside a while loop x=1 Prompt and get status F Print “Bye” x <= 3? F T status == 1? Print “Adults” T Print “Kids” x++ BS (Sept 2012) 85
  • 86. 2. Repetition Structures inside a Selection Structure • Example: a while loop inside a simple if..else x=1 Prompt and get status F status == 1? T Print “Kids” F x=1 x <= 3? T Print “Adults” x++ Print “Bye” BS (Sept 2012) 86
  • 87. Exercise 1. Write C programs that calculate and display the average of 10 floating point numbers read from user by implementing while, do…while and for loops to accomplish the task. 2. Write programs that keep printing the multiples of the integers 2, namely 2, 4, 8, 16, 32, 64 and 128. Your loop should terminate at 128. Use while, do…while and for loops to implement this. • Implement appropriate data validation in the programs BS (Sept 2012) 87
  • 88. Topic 5 continue AND break STATEMENTS BS (Sept 2012) 88
  • 89. The break statement • The continue and break statements are used to modify the program flow when a selection structure or a repetition structure is used. • The break statement can be used to forced exit of selection or terminate repetition structure. • Example: for (num=1;num<=5;num++) { if (num==2) break; printf("Hello Worldn"); } BS (Sept 2012) When the value of num is equals to 2, the program will terminate from the for loop. OUTPUT? 89
  • 90. The break statement • You can use the break statement at any time. • This can be very useful if you want to stop running a loop because a condition has been met other than the loop end condition. The while loop will run, as long i is smaller then twenty. But, the while loop must stop (break) if i equals to ten int i; i = 0; while ( i < 20 ) { i++; if ( i == 10) break; } BS (Sept 2012) 90
  • 91. The continue Statement • Can be used to skip the rest of the loop body statements and continue with the next repetition of the loop (start from the top again - the loop variable must still be incremented). for (num=1;num<=5;num++) • Example: { When the value of num is equal to 2, the program will skip the printf statement and continue with the for loop. if (num==2) continue; /* end_if */ printf(“Number %dn”,num); } /*end_for */ OUTPUT? BS (Sept 2012) 91
  • 92. The continue Statement • In a for loop, any modification to the control variable will be done before the condition is checked. • In a while and do…while structures, the loop condition will be checked as soon as the continue statement is encountered to determine whether the loop will be continued . int i=0; • Example: In the example above, the printf function is never called because of the continue statement. while ( i < 20 ) { i++; continue; printf("Nothing to seen"); } BS (Sept 2012) 92
  • 93. Summary 1. 2. 3. We can get our C programs to make decisions using Selection Structure including if, if…else, ?: operator, if…else if and switch. Also we can get our programs to repeat (loop) processing without writing the same statements over and over using Repetition Structure including while loop, do…while loop, for loop All the while, do…while , and for loops can be implemented as counter-controlled loop or sentinel-controlled loop. – When number of iteration is known, use counter-controlled loop – When decision to proceed with iteration depends on a value or a range of values, use sentinel-controlled loop BS (Sept 2012) 93
  • 94. Summary 4. The expression of the condition in the selection and repetition structures must be specified using Relational operators (such as >, >=, <, <=) and Equality operators (==, !=) and several conditions may be combined using Logical operators (&&, ||, and !). 5. You may combine sequence, selection and repetition structures in a C program 6. You may use the continue and break statements to modify the program flow when a selection structure or a repetition structure is used. BS (Sept 2012) 94