12 lec 12 loop
Upcoming SlideShare
Loading in...5
×
 

12 lec 12 loop

on

  • 588 views

Loop while,do while loop, for loop

Loop while,do while loop, for loop

Statistics

Views

Total Views
588
Views on SlideShare
588
Embed Views
0

Actions

Likes
0
Downloads
45
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 02/21/13
  • 02/21/13

12 lec 12 loop 12 lec 12 loop Presentation Transcript

  • Introducing to Loops
  • GoalsBy the end of this unit, you should understand …• … basic loop concepts, including pretest & posttest loops, loop initialization ,condition and increment.• … how to program a while loop.• … how to program a do-while loop.• … how to program a for loops.
  • What is a loop?• A loop is a programming structure that allows an action to repeat until the program meets a given condition.• After each iteration of a loop, the loop checks against a loop control expression to see if the program met the given condition. If it did, the loop stops. If not, the loop moves on to the next iteration.
  • Types of Loops• C supports two categories of loops, based on where the program tests the condition: – Pretest Loops – Post-test Loops
  • Pretest Loops• With each iteration, the program tests the condition first before executing the loop’s block.• If the condition results to true, the loop continues and executes the block; if the condition results to false, the loop terminates.• With a pretest loop, there is a chance the loop may never execute once in the program.
  • Post-Test Loops• With each iteration, the program executes the loop’s block first and tests against a condition.• If the condition tests to true, the loop continues and executes another iteration; if the condition tests to false, the loop terminates.• With a post-test loop, the loop will always execute at least once!
  • Pretest vs. Post-Test Loops from Figure 6-2 in Forouzan & Gilberg, p. 305
  • Variable Initialization• int i=5;• I have initialized the variable i with a value i=5;
  • Updating a Loop• A loop update is what happens inside a loop’s block that eventually causes the loop to satisfy the condition, thus ending the loop.• Updating happens during each loop iteration.• Without a loop update, the loop would be an infinite loop.
  • Initialization & Updating
  • Loop Comparisonfrom Table 6-1 in Forouzan & Gilberg, p. 308
  • C Implementation of Loops• Pretest Loops – while Loop – for Loop• Post-test Loop – do … while loop• All loops in C execute so long as a condition evaluates to true and terminate when the condition evaluates to false.
  • The while Loopfrom Figure 6-11 in Forouzan & Gilberg, p. 311
  • Example of while loop#include<stdio.h>#include<conio.h> If we input valueint main() of end as 10 then{ output will be 1 toint start, end; 10scanf("%d",&end);start = 0; while ( start < end){start++;printf("%dn", start); }return 0;
  • Example#include<stdio.h> The output of the postfix and prefix increment example willint main() look like this: { int i; 1 2i = 0; 3 4while(i++ < 5) 5{ printf("%dn", i);} 1printf("n"); 2 3 i = 0; 4while(++i < 5) { printf("%dn", i); }return 0; }
  • The for Loop• A for loop is a pretest loop that includes three expressions in its header: – Loop initialization statement – Limit test expression(condition) – Loop update statement• The for loop is often used as a start-controlled loop since we can accurately predict the maximum number of iterations.
  • The for Loop
  • Comparing while with for
  • Comparing while with fori = 1; sum = 0;sum =0; for (i = 1; i <= 20; i++)while (i <= 20) {{ scanf(“%d”, &a); scanf(“%d”, &a); sum = sum+a; sum = sum+a; }//end for i++}//end while The while Loop The for Loop
  • Example of for loopmain ( ){int p, n, count ;float r, si ;for ( count = 1 ; count <= 3 ; count = count + 1 ){printf ( "Enter values of p, n, and r " ) ;scanf ( "%d %d %f", &p, &n, &r ) ;si = (p * n * r) / 100 ;printf ( "Simple Interest = Rs.%fn", si ) ;}}
  • Example#include <stdio.h> #include<conio.h>void main(){ int i = 0, j = 8; printf("Times 8 Tablen"); for(i = 0; i <= 12; i = i + 1) { printf("%d x %d = %dn", i, j, j*i); } printf("n");}
  • Nested for Loops• We can nest any statement, even another for loop, inside the body of a parent for loop.• When we nest a child for loop, it iterates all of it’s cycles for each iteration of the parent.
  • Example of nested for loop• /* Demonstration of nested loops */ When you run thismain( ) program you will get the{ following output: r = 1 c = 1 sum = 2int r, c, sum ; r = 1 c = 2 sum = 3 r = 2 c = 1 sum = 3for ( r = 1 ; r <= 3 ; r++ ) /* outer loop */ r = 2 c = 2 sum = 4{ r = 3 c = 1 sum = 4 r = 3 c = 2 sum = 5for ( c = 1 ; c <= 2 ; c++ ) /* inner loop */{sum = r + c ;printf ( "r = %d c = %d sum = %dn", r, c, sum ) ;}}}
  • The do … while Loop• C implements a post-test loop using a structure called a do … while loop.• In the do … while, the loop begins with the keyword do, followed by the body, followed by the keyword while and the loop expression.• A semi-colon (;) follows the loop expression.
  • The do … while Loop
  • Example of do-while/* Execution of a loop an unknown number of time*/main( ){ Output:char another ; Enter a number 5int num ; square of 5 is 25 Want to enter another number y/n ydo Enter a number 7 square of 7 is 49{ Want to enter another number y/n nprintf ( "Enter a number " ) ;scanf ( "%d", &num ) ;printf ( "square of %d is %d", num, num * num ) ;printf ( "nWant to enter another number y/n " ) ;scanf ( " %c", &another ) ;} while ( another == y ) ;}
  • Same using for loop/* odd loop using a for loop */main( ){char another = y ;int num ;for ( ; another == y ; ){printf ( "Enter a number " ) ;scanf ( "%d", &num ) ;printf ( "square of %d is %d", num, num * num ) ;printf ( "nWant to enter another number y/n " ) ;scanf ( " %c", &another ) ;
  • Same using while loop/* odd loop using a while loop */main( ){char another = y ;int num ;while ( another == y ){printf ( "Enter a number " ) ;scanf ( "%d", &num ) ;printf ( "square of %d is %d", num, num * num ) ;printf ( "nWant to enter another number y/n " ) ;scanf ( " %c", &another ) ;}}
  • Comparingdo … while with while
  • The break Statement in Loops• We often come across situations where we want to jump out of a loop instantly, without waiting to get back to the conditional test.• The keyword break allows us to do this.• When break is encountered inside any loop, control automatically passes to the first statement after the loop.
  • Example of break• Write a program to determine whether a number is prime or not. A prime number is one, which is divisible only by 1 or itself.• All we have to do to test whether a number is prime or not, is to divide it successively by all numbers from 2 to one less than itself.• If remainder of any of these divisions is zero, the number is not a prime. If no division yields a zero then the number is a prime number.
  • Examplemain( ){int num, i ;printf ( "Enter a number " ) ;scanf ( "%d", &num ) ;i=2;while ( i <= num - 1 ){if ( num % i == 0 ){printf ( "Not a prime number" ) ;break ;}i++ ;} if ( i == num )printf ( "Prime number" ) ;}
  • Example main( )The keyword break breaks the { control only int i = 1 , j = 1 ; from the while in while ( i++ <= 100 ) which it is placed. { while ( j++ <= 200 ) { if ( j == 150 ) break ; else printf ( "%d %dn", i, j ) ; } } }
  • The continue Statement• In some programming situations we want to take the control to the beginning of the loop, bypassing the statements inside the loop, which have not yet been executed. The keyword continue allows us to do this.• When continue is encountered inside any loop, control automatically passes to the beginning of the loop.
  • Example of continue statementmain( ){ The output of theint i, j ; above program wouldfor ( i = 1 ; i <= 2 ; i++ ) be...{ 12for ( j = 1 ; j <= 2 ; j++ ) 21{if ( i == j )continue ;printf ( "n%d %dn", i, j ) ;}}