290 likes | 321 Views
Programming Fundamentals. Loops & Its Logic. What is a Loop?
E N D
Loops & Its Logic • What is a Loop? • An iterative statement is called loop. A type of control structure that repeats a statement or set of statements is known as looping structures. It is also known as iterative or repetitive structure. There are two elements of the loop: the body of loop which is to be executed number of times and a loop condition which terminates the loop when a particular condition is met. Repetition • A single statement • A set of statements
Types of Loop • Types of Loop • Counter loop (for loop) • Conditional loops (while, do while)
For Loop Operation Initialization Expression Test Expression False Exit True Body of Loop IncrementExpression
Test Expression Initialization Expression Increment Expression For Loop Structure for ( j=0 ; j < 5 ; j++ ) statement; keyword Single Statement Loop Body
For Loop Structure for ( j=0 ; j < 5 ; j++ ) { statement; statement; statement; } Test Expression Initialization Expression Increment Expression keyword Multiple Statement Loop Body
For Loop // demonstrate simple for loop # include <iostream> int main() { int j; for (j=0 ; j < 5 ; j++) cout << j * j << “ “; return 0; } Output: 0 1 4 9 16
controlling For Loop Variations • Multiple initialization and increment Expressions for (x=0 , j=0 ; j < 5 ;j++ , x++) • Increment or Decrement for ( j=5 ; j > 0 ; j--) for ( j=0 ; j <10 ; j+=2)
The Infinite loop • A loop that does not terminate is called Infinite loop. A loop who's condition always remain true is called infinite loop. e.g. for(int i=0;i>0;i++) cout<<i;
Test Expression False Exit True Body of Loop While Loop while ( test expression ) { Statement; Statement; Statement; } Single Statement Loop Body while (test expression ) statement; Multiple Statement Loop Body While Operation
The body of the loop is executed until the condition becomes false. Here is a program which illustrates the working of the while loop. void main () { int c=0; int i=0; char str=‘y’; while(str==’y’) { cout<<”Enter the number you want to add”<<endl; cin>>i; c=c+1; cout<<”Do you want to enter another number y/n:”<<endl; cin>>str; } cout<<”The sum of the numbers are : “<<c<<endl; getch(); }
// to find the average of as many numbers as user wants with while loop. • void main() • { • int n,sum,count; • while(cin>>n) • { • If(n==0) • continue; • sum=sum+n //sum+=n; • count++; • } • cout<<(sum/count); • }
Body of Loop Test Expression False Exit True Do While Loop Do { Statement; Statement; Statement; } while ( test expression ); Single Statement Loop Body Do statement; while (test expression ); Multiple Statement Loop Body Multiple Statement Loop Body Multiple Statement Loop Body Do While Operation
The body of the loop is executed until the condition becomes false. Here is a program which illustrates the working of the do while loop. void main () { int c=0; int i=0; char str=‘y’; do { cout<<”Enter the number you want to add”<<endl; cin>>i; c=c+1; cout<<”Do you want to enter another number y/n:”<<endl; cin>>str; } while(str==’y’); cout<<”The sum of the numbers are : “<<c<<endl; getch(); }
// to find the average of as many numbers as user wants with do while loop. • void main() • { • int n,sum,count; • do • { • If(n==0) • continue; • sum=sum+n //sum+=n; • count++; • } while(cin>>n); • cout<<(sum/count); • }
When to use Which Loop? • Advance knowledge • For Loop • No Prior Knowledge • While Loop • Do While (executes at least once)
Break & Continue Statement • To exit a loop you can use the break statement at any time. This can be very useful if you want to stop running a loop because a condition has been met other than the loop end condition. • With “continue;” it is possible to skip the rest of the commands in the current loop and start from the top again. (the loop variable must still be incremented). EXAMPLE int main() { int j, total; for (int i=0; i<20;i++) { cin>>j; if ( j == 10) continue; total = i + j; cout<<“total is=“<<total; } return 0; }
Continue statement • With “continue;” it is possible to skip the rest of the commands in the current loop and start from the top again. (the loop variable must still be incremented). EXAMPLE int main() { int i; i = 0; while ( i < 20 ) { i++; continue; cout<<“hey wait! you are skipping me”; } return 0; }
Nested Loop • A loop within an other loop is called nested loop. e.g. • for(int i=1;i<=5;i++) • { • for(int j=1;j<=i;j++) • { • cout<<j; • } • cout<<endl; } Output 1 12 123 1234 12345
Nested Loop • for(int i=5;i>=1;i--) • { • for(int j=i;j>=1;j--) • { • cout<<j; • } • cout<<endl; } Output 54321 4321 321 21 1
Nested Loop • for(int i=5;i>=1;i--) • { • for(int j=1;j<=i;j++) • { • cout<<j; • } • cout<<endl; } Output 12345 1234 123 12 1
Nested Loop • for(int i=5;i>=1;i--) • { • for(int j=1;j<=i;j++) • { • cout<<“*”; • } • cout<<endl; } Output ***** **** *** ** *
Nested Loop • int i=5; • while(i>=1) • { • int j=1; • while(j<=i) • { • cout<<j; • j++; • } • i--; • cout<<endl; } Output 12345 1234 123 12 1
What makes a bad program? Bad !! • Repeating trial and error without understanding the problem • Writing Code without detailed analysis and design (Abstraction, Algo) • Writing tricky and dirty programs Bad !! Bad !!
PROGRAMMER'S DRINKING SONG!! 100 little bugs in the code, 100 bugs in the code, fix one bug, compile it again, 101 little bugs in the code. 101 little bugs in the code … Repeat until BUGS = 0 —The Internet Joke Book
Programs: • Write a program using for, while and do while and nested loops to display the following outputs. You are also required to submit the dry runs of all these programs on paper. =========== **************** ******** **** ** * =========== 12345678910 123456789 12345678 1234567 123456 12345 1234 123 12 1 1 12 123 1234 12345 123456 1234567 12345678 123456789 12345678910 * *** ***** ******* ******* ***** *** *
Programs: • Write a program using for, while and do while and nested loops to display the following outputs. You are also required to submit the dry runs of all these programs on paper. & && &&& &&&& &&&&& &&&&& &&&& &&& && & 13579 13579 1357 1357 135 135 13 1 0 02 024 0246 02468 0246810 024681012 02468101214 * *** ***** ******* ***** *** *