You are on page 1of 29

CONTROL FLOW

WHILE-DO AND DO-WHILE


AND FOR-LOOP
Why do while and while do
 Programs using if statement is sequential
 Program will flow from top to bottom and some
blocks are executed based on the condition
 This sequential system lacks repetition
 An if statement checks if an expression is true or
false, and then runs the code inside the statement
only if it is true. The code inside the loop is only run
once...
 A while statement is a loop. Basically, it continues to
execute the code in the while statement for however
long the expression is true.
When to use loop
 There are two types of loop:
 While-do
 Do-while

 Loop is best use when you don't know exactly how


many times you may have to loop through a
condition - if you know exactly how many times you
want to test a condition
 Loop will go to the previous position as indicated at
the start of the loop
Control flow while-do (1/4)
 Example of boiling water
 Turn on stove
 Put pan on the stove
 Look at the water, if not boiling
Repetition
 Then wait, go into previous activity Not knowing how long
 Turn off stove
 Remove pan
Control flow while-do (2/4)
 Flow diagram of while do
Control flow while-do (3/4)
 Example format of while-do:
while (test expression)
{
modular block to be executed
}

 Example of calculating factorial


 5! = 5*4*3*2*1
Control flow while-do (4/4)
#include <stdio.h>
int main()
{
int number,factorial;
printf("Enter a number.\n");
scanf("%d",&number);
factorial=1;
while (number>0)
{ /* while loop continues until test condition number>0 is
true */
factorial=factorial*number;
--number;
}
printf("Factorial=%d",factorial);
return (0);
}
Example program
 The above program is available on Linux system
 Run and try during class
 Other program and guessing a number
 Name of programs
 Random-guess.c
 Control-while-do.c
Control flow do-while (1/4)
 do...while loop is very similar to while loop
 difference between these two loops is that, in while
loops, test expression is checked at first but, in
do...while loop code is executed at first then the
condition is checked
 the code are executed at least once in do...while
loops.
Control flow do-while (2/4)
 Flow diagram of do-while
Control flow do-while (3/4)
 Format of do-while:
do
{
some code/s;
} while (test expression);
 Example, adding number :
 Ask for a number
 Add the number to the sum
 Display the result
 Ask again, quit if zero
Control flow do-while (4/4)
/*C program to demonstrate the working of do...while statement*/
#include <stdio.h>
int main()
{
int sum=0,num;
do /* Codes inside the body of do...while loops are at least
executed once. */
{
printf("Enter a number\n");
scanf("%d",&num);
sum+=num; /* sum = sum+num;*/
}
while(num!=0);
printf("sum=%d",sum);
return (0);
}
Apa yang terjadi (1/2)
#include <stdio.h>
int main()
{
int factorial=1,number=1;
while (1)
{
factorial=factorial*number;
number++;
}
printf(“Factorial = %d\n“,factorial);
return (0);
}
Apa yang terjadi (2/2)
#include <stdio.h>
int main()
{
int sum=0,num;
do /* Codes inside the body of do...while loops are at least executed
once. */
{
printf("Enter a number\n");
scanf("%d",&num);
sum+=num;
}
while(1);
printf("sum=%d",sum);
return (0);
}
Program example
 Program example is the same as the above
example
 Name of program is control-do-while.c
Control flow for-loop (1/4)
 Loops causes program to execute the certain block
of code repeatedly until some conditions are
satisfied
 Loops are used in performing repetitive work in
programming
 Suppose you want to execute some codes 100
times, it can be performed by writing that code
once and repeat the execution 100 times using loop
Control flow for-loop (2/4)
 Flow diagram of
control flow for-loop
Control flow for-loop (3/4)
 Format of for loop:
for(initial expression; test expression;
update expression)
{
code/s to be executed;
}
 Example of calculating factorial
 5! = 5*4*3*2*1
Control flow for-loop (4/4)
#include <stdio.h>
int main()
{
int number, count, factorial=1;
printf("Enter the value of n.\n");
scanf("%d",&number);
for(count=1;count<=number;++count)
//for loop terminates if count>n
{
factorial *= count; /* this statement is equivalent to
factorial = factorial*count */
}
printf(“Factorial = %d\n“, factorial);
return (0);
}
Control flow goto (1/5)
 goto allows you to jump unconditionally to arbitrary
part of your code (within the same function, later
about function).
 the location is identified using a label
 a label is a named location in the code. It has the
same form as a variable followed by a ’:’
 goto statement is used for altering the normal
sequence of program execution by transferring
control to some other part of the program
Control flow goto (2/5)
 Go To Statement Considered Harmful
Communications of the ACM 11(3),1968
 Excess use of goto creates spaghetti code.
 Using goto makes code harder to read and debug.
 Any code that uses goto can be written without
using one.
 TRY NOT TO USE GOTO AT ANY COST
 IT IS NOT A GOOD PROGRAMMING PRACTICE
Control flow goto (3/5)
 Flow diagram of goto statement both going
forward and backward
Control flow goto (4/5)
 Format of goto:
goto label;
code to be executed;
code to be executed;
label:
codes to be executed;
Control flow goto (5/5)
/* C program to demonstrate the working of goto statement.*/
# include <stdio.h>
void main()
{
float num,average,sum;
int i,n;
printf("Maximum no. of inputs: ");
scanf("%d",&n);
for(i=1;i<=n;++i)
{
printf("Enter n%d: ",i);
scanf("%f",&num);
if(num<0.0)
goto jump; /* control of the program jumps to label jump */
sum=sum+num;
}
jump:
average=sum/(i-1);
printf("Average: %.2f",average);
}
Control flow break (1/2)
 Utilized to terminate loop immediately when encountered
for three loops: for, while and do...while
 Usually used with conditional if statement
 Flow diagram:
Control flow break (2/2)
/* C program to demonstrate the working of break statement by terminating
a loop, if user inputs negative number*/
# include <stdio.h>
int main()
{
float num,average,sum;
int i,n;
printf("Maximum no. of inputs\n");
scanf("%d",&n);
for(i=1;i<=n;++i)
{
printf("Enter n%d: ",i);
scanf("%f",&num);
if(num<0.0)
break; //for loop breaks if num<0.0
sum=sum+num;
}
average=sum/(i-1);
printf("Average=%.2f",average);
return (0);
}
Control flow continue (1/2)
 To skip some statements inside the three loops: for,
while and do...while
 Usually used with conditional if statement (similar to
break)
 Flow diagram
Control flow continue (2/2)
//program to demonstrate the working of continue statement in C
programming
# include <stdio.h>
void main()
{
int i,num,product;
for(i=1,product=1;i<=4;++i)
{
printf("Enter num%d:",i);
scanf("%d",&num);
if(num==0)
continue; / *In this program, when num equals to
zero, it skips the statement product*=num and continue the
loop. */
product*=num;
}
printf("product=%d",product);
}
Try example program
 Each all try the programs yourselves
 Raise your hand when finished
 If you have problems, also raise your hand
 Assignment prime number:
 A Prime Number can be divided evenly only by 1, or itself
 First prime number is ‘2’ and the only even prime number
 Other prime numbers will always be odd numbers
 Check the prime candidate by dividing the candidate by odd
numbers until candidate/2
 Write a program to check prime number
 Write a program to find the first 10 prime numbers
 Expand program to find the first 10000 prime numbers
 Fastest program will win a small price

You might also like