260 likes | 355 Views
Learn about while loops, do-while loops, for loops, and nested loops in computer programming. Understand the need for loops, different types of while loops, repetition control, sentinel value usage, and flag-controlled loops.
E N D
Week 4C Programming Structures (Repetition Structures/Loops) EKT120: COMPUTER PROGRAMMING
Outline • Introduction • While loops • Three types of while loops • Do-while loops • For loops • Nested loops EKT120: COMPUTER PROGRAMMING
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
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
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
Flowchart of a while statement EKT120: COMPUTER PROGRAMMING
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
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
true iProduct <= 1000 iProduct = 2 * iProduct false Counter-Controlled while Loops • Another example: int iProduct = 2; while ( iProduct <= 1000 ) iProduct = 2 * iProduct; declare and initialize test condition increment EKT120: COMPUTER PROGRAMMING
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
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
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 EKT120: COMPUTER PROGRAMMING read again
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 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. 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 test condition EKT120: COMPUTER PROGRAMMING decision structure Set error to 0
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
true false action(s) condition Flowchart of a do-while structure EKT120: COMPUTER PROGRAMMING
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 EKT120: COMPUTER PROGRAMMING sentinel-controlled
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
The do-while Looping Structure (Example) • Example: Consider the following two loops (b) iLoop = 11; do { printf("%d",iLoop); iLoop = iLoop + 5; } while (iLoop <= 10); (a) iLoop = 11; while (iLoop <= 10) { printf("%d",iLoop); iLoop = iLoop + 5; } EKT120: COMPUTER PROGRAMMING
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
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
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
Flow of a for statement EKT120: COMPUTER PROGRAMMING
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”); } EKT120: COMPUTER PROGRAMMING Output 1234 1234 1234
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
Q & A! End Week 4 EKT120: COMPUTER PROGRAMMING