1 / 25

Week 4 – Repetition Structures / Loops

Week 4 – Repetition Structures / Loops. Outline. Introduction While loops Three types of while loops Do-while loops For loops Nested loops. 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

gene
Download Presentation

Week 4 – Repetition Structures / Loops

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Week 4 – Repetition Structures / Loops EKT120: Computer Programming

  2. Outline • Introduction • While loops • Three types of while loops • Do-while loops • For loops • Nested loops EKT120: Computer Programming

  3. 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? EKT120: Computer Programming

  4. 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 • whilestatement • do-while statement • forstatement • 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 EKT120: Computer Programming

  5. 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 EKT120: Computer Programming

  6. Flowchart of a while statement EKT120: Computer Programming

  7. 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 EKT120: Computer Programming

  8. 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 initializecontrol 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) EKT120: Computer Programming

  9. true iProduct <= 1000 iProduct = 2 * iProduct false Counter-Controlled while Loops declare and initialize • Another example: int iProduct = 2; while ( iProduct <= 1000 ) iProduct = 2 * iProduct; test condition increment EKT120: Computer Programming

  10. 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“ EKT120: Computer Programming

  11. 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. Readcontrol variable value before enter loop • 2. A condition that testscontrol variable’s validity (i.e., whether looping should continue) • 3. Read again control variable before end of loop Sentinel value EKT120: Computer Programming

  12. 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 EKT120: Computer Programming

  13. Flag-Controlled while Loops • Uses a flag to control the loop. • Loop exit when expression is evaluated to false. Set Flag, by default error =1 • Requirement: • 1. Setcontrol variable before loop • 2. A condition that testscontrol variable. If expr evaluated to 1, loop continue • 3. A decision structure to test value validity • 4. Setcontrol variable to 0 to indicate found 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!");} } test condition decision structure Set error to 0 EKT120: Computer Programming

  14. 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 ); EKT120: Computer Programming

  15. true false action(s) condition Flowchart of a do-while structure EKT120: Computer Programming

  16. 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 EKT120: Computer Programming

  17. 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 EKT120: Computer Programming

  18. 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); EKT120: Computer Programming

  19. The do-while Looping Structure (Example) • In (a), the while loop, produces nothing • In (b) the do...while loop, outputs the number 11 EKT120: Computer Programming

  20. The for Repetition Structure • Format when using for loops for (initialization ; loop continuation test ; incrementstatement) • 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 EKT120: Computer 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); EKT120: Computer Programming

  22. Flow of a for statement EKT120: Computer Programming

  23. 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 1234 1234 EKT120: Computer Programming

  24. 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’); EKT120: Computer Programming

  25. End Week 4 - Loops Q & A! EKT120: Computer Programming

More Related