Presentation is loading. Please wait.

Presentation is loading. Please wait.

PGT 106 - C Programming1 Week 4 – Repetition Structures / Loops.

Similar presentations


Presentation on theme: "PGT 106 - C Programming1 Week 4 – Repetition Structures / Loops."— Presentation transcript:

1 PGT 106 - C Programming1 Week 4 – Repetition Structures / Loops

2 PGT 106 - C Programming2 Outline Introduction While loops Three types of while loops Do-while loops For loops Nested loops

3 PGT 106 - C Programming3 Why Need Loops ? Suppose we want to add five numbers and find the average. From what you have learned so far, you could proceed as follows scanf(“%d %d %d %d %d”, &iNum1, &iNum2, &iNum3, &iNum4, &iNum5); iSum = iNum1 + iNum2 + iNum3 + iNum4 + iNum5; fAverage = iSum / 5; If 100 numbers, 1000 numbers?

4 PGT 106 - C Programming4 Repetition (Loop) Used to control the flow of a program Loops are basically repetitions or iterations used to repeat a segment of code Three statements can be used to implement loops in C while statement do-while statement for statement while and for statements are similar in implementation, but have different syntax The do-while statement is different - the following code is executed at least once

5 PGT 106 - C Programming5 The while loop structure The general form of the while statement is: while (expression) statement; To avoid an infinite loop, make sure that the loop’s body contains statement (s) that assure that the exit condition i.e. the expression in the while statement will eventually be false. while loop repeates until condition becomes false

6 PGT 106 - C Programming6 Flowchart of a while statement

7 PGT 106 - C Programming7 The while loop structure-cont There are basically three types of while loops: Counter-controlled while loop Sentinel-controlled while loop Flag-controlled while loop

8 PGT 106 - C Programming8 Counter-Controlled while Loops Definite repetition: know how many times loop will execute Control variable used to count repetitions Example: int iCounter = 1; // declare and initialize while ( iCounter <= 10 ) // test condition { printf( "%d\n", iCounter ); ++iCounter; // update } Requirement: 1. Declare and initialize control variable value (or loop counter) 2. A condition that tests for the final value of the control variable (i.e., whether looping should continue) 3. Update control variable (incr/decr)

9 PGT 106 - C Programming9 Counter-Controlled while Loops Another example: int iProduct = 2; while ( iProduct <= 1000 ) iProduct = 2 * iProduct; iProduct <= 1000 iProduct = 2 * iProduct true false declare and initialize test condition increment

10 PGT 106 - C Programming10 Sentinel-Controlled while Loops Indefinite repetition Used when number of repetitions not known and loop needs to input value repeatedly for each iteration Sentinel value indicates "end of data“

11 PGT 106 - C Programming11 Sentinel-Controlled while Loops-continued Example: int iNumber, iCount, iSum; iSum = 0; iCount = 0; printf(“To stop enter -999. Enter positive numbers : " ); scanf(“%d”, &iNumber); while (iNumber != -999) { iSum = iSum + iNumber; //find sum of numbers entered iCount++; //count how many numbers entered printf(“To stop enter -999. Enter positive numbers : " ); scanf(“%d”, &iNumber); } printf(“\nThe sum of %d numbers is %d“, iCount, iSum); Requirement: 1. Read control variable value before enter loop 2. A condition that tests control variable’s validity (i.e., whether looping should continue) 3. Read again control variable before end of loop Sentinel value

12 PGT 106 - C Programming12 Sentinel-Controlled while Loops-continued Another example: float fGradePt; char cChoice; printf(“Continue? y-yes n-no: ”); scanf(“%c”, &cChoice); while ( cChoice == ‘y’) {printf(“\nEnter grade point:”); scanf(“%f”, &fGradePt); if(fGradePt > 2.0) printf(“\nPass); printf(“Continue? y-yes n-no: ”); scanf(“%c”, &cChoice); } read control variable test condition read again

13 PGT 106 - C Programming13 Flag-Controlled while Loops Uses a flag to control the loop. Loop exit when expression is evaluated to false. int error; int iGuess; while (error) { printf("Enter number between 1 and 200:"); scanf("%d", &iGuess); if ((iGuess>= 88) &&(iGuess <=128)) {error = 0; printf("\nBINGO!");} } Requirement: 1. Set control variable before loop 2. A condition that tests control variable. If expr evaluated to 1, loop continue 3. A decision structure to test value validity 4. Set control variable to 0 to indicate found Set Flag, by default error =1 test condition decision structure Set error to 0

14 PGT 106 - C Programming14 The do - while Repetition Structure Similar to the while structure Condition for repetition is tested after the body of the loop is performed All actions are performed at least once Expression can be written as count-controlled or sentinel-controlled Format: do { statement; } while ( condition );

15 PGT 106 - C Programming15 Flowchart of a do-while structure true false action(s) condition

16 PGT 106 - C Programming16 The do - while Repetition Structure Example : prints the integers from 1 to 10 int iCounter = 1; do { printf( "%d ", iCounter ); } while (++iCounter <= 10);  Another example: do{ printf(“\nEnter grade point:”); scanf(“%f”, &fGradePt); if(fGradePt > 2.0) printf(“\nPass); printf(“Continue?y-yes n-no :”); scanf(“%c”, &cChoice); }while ( cChoice == ‘y’) count-controlled sentinel-controlled

17 PGT 106 - C Programming17 The do-while Repetition Structure To avoid an infinite loop, make sure that the loop body contains a statement that ultimately makes the expression false and assures that it exits Another example: int iLoop = 0; do { printf (“%d ”,iLoop); iLoop = iLoop + 5; } while (iLoop <= 20); The output is: 0 5 10 15 20

18 PGT 106 - C Programming18 The do-while Looping Structure (Example) Example: Consider the following two loops (a) iLoop = 11; while (iLoop <= 10) { printf("%d",iLoop); iLoop = iLoop + 5; } (b) iLoop = 11; do { printf("%d",iLoop); iLoop = iLoop + 5; } while (iLoop <= 10);

19 PGT 106 - C Programming19 The do-while Looping Structure (Example) In (a), the while loop, produces nothing In (b) the do...while loop, outputs the number 11

20 PGT 106 - C Programming20 The for Repetition Structure Format when using for loops for (initialization ; loop continuation test ; increment statement) Use for loops when already know how many times to repeat Example: for(iCounter = 1;iCounter <= 10;iCounter++) printf("%d\n",iCounter); Prints the integers from 1 to 10

21 PGT 106 - C Programming 21 The for Repetition Structure ‘for’ loops can usually be rewritten as while loops: initialization; while ( loop continuation test ) { statement; increment statement; } Initialization and increment Can be comma-separated lists. Example: int iVar1, iVar2; for(iVar1=0,iVar2=0;iVar2+iVar1<=10;iVar2++,iVar1++) printf(“%d\n”,iVar2+iVar1);

22 PGT 106 - C Programming22 Flow of a for statement

23 PGT 106 - C Programming23 Nested loop Loop within a loop Inner loop is performed first e.g. for(iLoop1=1;iLoop1<4;iLoop1++) { for(iLoop2=1;iLoop2<5;iLoop2++) printf(“%d”, iLoop2); printf(“\n”); } Output 1234

24 PGT 106 - C Programming24 Nested loop Another example: Program finds and prints avg of three test scores, then asks whether user wants to continue do { for(iCount=0; iCount <3;iCount++) {printf(“\nEnter test marks: ”); scanf(“%d”, &iMarks); iTotal=iTotal+iMarks; } fAvg=iTotal/iCount; printf(“\nAverage:%5.2f”, fAvg); printf(“\nContinue?”); scanf(“%c”, &cChoice); }while(cChoice == ‘y’);

25 PGT 106 - C Programming25 End Week 4 - Loops Q & A!


Download ppt "PGT 106 - C Programming1 Week 4 – Repetition Structures / Loops."

Similar presentations


Ads by Google