Nested Loops in C++

By: Daniel Malcolm Emailed: 1643 times Printed: 2113 times    

Latest comments
By: rohit kumar - how this program is work
By: Kirti - Hi..thx for the hadoop in
By: Spijker - I have altered the code a
By: ali mohammed - why we use the java in ne
By: ali mohammed - why we use the java in ne
By: mizhelle - when I exported the data
By: raul - no output as well, i'm ge
By: Rajesh - thanx very much...
By: Suindu De - Suppose we are executing

Loops may be nested, with one loop sitting in the body of another. The inner loop will be executed in full for every execution of the outer loop. This c++ program illustrates writing marks into a matrix using nested for loops.

Illustrates nested for loops.

1:   //
2:   //Illustrates nested for loops
3:
4:   #include <iostream.h>
5:
6:   int main()
7:   {
8:       int rows, columns;
9:       char theChar;
10:       cout << "How many rows? ";
11:       cin >> rows;
12:       cout << "How many columns? ";
13:       cin >> columns;
14:       cout << "What character? ";
15:       cin >> theChar;
16:       for (int i = 0; i<rows; i++)
17:       {
18:          for (int j = 0; j<columns; j++)
19:              cout << theChar;
20:          cout << "\n";
21:       }
22:      return 0;
23: }

Output: How many rows? 4
How many columns? 12
What character? x
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx

Analysis: The user is prompted for the number of rows and columns and for a character to print. The first for loop, on line 16, initializes a counter (i) to 0, and then the body of the outer for loop is run.
On line 18, the first line of the body of the outer for loop, another for loop is established. A second counter (j) is also initialized to 0, and the body of the inner for loop is executed. On line 19, the chosen character is printed, and control returns to the header of the inner for loop. Note that the inner for loop is only one statement (the printing of the character). The condition is tested (j < columns) and if it evaluates true, j is incremented and the next character is printed. This continues until j equals the number of columns.

Once the inner for loop fails its test, in this case after 12 Xs are printed, execution falls through to line 20, and a new line is printed. The outer for loop now returns to its header, where its condition (i < rows) is tested. If this evaluates true, i is incremented and the body of the loop is executed.

In the second iteration of the outer for loop, the inner for loop is started over. Thus, j is reinitialized to 0 and the entire inner loop is run again.

The important idea here is that by using a nested loop, the inner loop is executed for each iteration of the outer loop. Thus the character is printed columns times for each row.

 


NOTE: As an aside, many C++ programmers use the letters i and j as counting variables. This tradition goes all the way back to FORTRAN, in which the letters i, j, k, l, m, and n were the only legal counting variables. Other programmers prefer to use more descriptive counter variable names, such as Ctrl and Ctr2. Using i and j in for loop headers should not cause much confusion, however.

Scoping in for Loops

You will remember that variables are scoped to the block in which they are created. That is, a local variable is visible only within the block in which it is created. It is important to note that counting variables created in the header of a for loop are scoped to the outer block, not the inner block. The implication of this is that if you have two for loops in the same function, you must give them different counter variables, or they may interfere with one another.


C++ Home | All C++ Tutorials | Latest C++ Tutorials

Sponsored Links

If this tutorial doesn't answer your question, or you have a specific question, just ask an expert here. Post your question to get a direct answer.



Bookmark and Share

Comments(22)


1. View Comment

My teacher doesnt teach me right!

View Tutorial          By: Anon at 2009-02-20 07:16:08
2. View Comment

nice///

View Tutorial          By: MHARLON ALADEN at 2009-08-14 01:00:09
3. View Comment

a big thanks!

View Tutorial          By: xamae at 2010-01-13 02:52:51
4. View Comment

thnks for the loop

View Tutorial          By: Benavidez,Jam at 2010-02-02 01:57:48
5. View Comment

very nicely explained,
thank you


View Tutorial          By: Amin at 2010-04-14 09:40:30
6. View Comment

Si AIZA DIN< DI MARUNONG MAGTURO

View Tutorial          By: Agnes at 2010-06-25 22:34:29
7. View Comment

well done!!nice work

View Tutorial          By: Dxy at 2010-07-26 00:46:55
8. View Comment

good job.. i understand it clearly..
its indeed a big help..


View Tutorial          By: xmplexd at 2010-08-04 02:12:30
9. View Comment

this site is excellent & too easy to understand.

View Tutorial          By: Gaurav Kushwaha at 2010-08-16 06:30:45
10. View Comment

hi how ru
anybody tell me that how to print
*****
*
*
*
*
in nested for
plz mail me at imran.khan1986@live.com


View Tutorial          By: imran at 2010-12-10 00:34:51
11. View Comment

ma'am aiza teaches us very well.. >< i like her teaching style actually~ :P

View Tutorial          By: chai at 2011-02-07 07:06:36
12. View Comment

an excellentttttttt siteee

View Tutorial          By: raza at 2011-04-02 10:39:46
13. View Comment

sooooooooooooooooo gr8 jop!!

View Tutorial          By: monti at 2011-06-14 08:40:55
14. View Comment

teacher namin na si Engr. Lumasag nakakasira ng bait kong magturo kasi di niya ituturo lahat slight lng tapos di pa tinatanong sa kanyang mga estudyante kung naiintindihan ba o wala
ang hirap spellingin!!!!!!!!!!!!1


View Tutorial          By: rossy at 2011-10-06 06:12:53
15. View Comment

aoa i am for the first time learning programing plz help me how to solve nested loops progarms i am in 2nd year

View Tutorial          By: manaal siddiqui at 2011-11-02 09:38:00
16. View Comment

Thank you for a great explanation now I'm in the loop :D

View Tutorial          By: C++Noob at 2011-12-22 04:43:31
17. View Comment

How we print this structure in C++, with nested loop:
*****
****
***
**
*


View Tutorial          By: Hussnain at 2012-01-27 09:19:41
18. View Comment

answer of comment No, 17

#include<iostream>
#include<conio.h>
using namespace std;

void main()
{
for(int i=0;i<5;i++)
{
for(int j=5-i;j>0;j--)
{
cout<<"*";
}
cout<<endl;
}
getch();
}


View Tutorial          By: Rashid Jabbar at 2012-09-16 20:23:11
19. View Comment

help me for this nested for loops
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9


View Tutorial          By: nadzirah at 2012-10-12 15:33:20
20. View Comment

enter no of line: 5 not fix value
out put is:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25


View Tutorial          By: mark at 2013-01-31 14:30:00
21. View Comment

pritnt
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
using nested loop in c++
send to this email=usama_olakh@hotmail.com


View Tutorial          By: osama at 2013-02-05 03:16:15
22. View Comment

good

View Tutorial          By: qwerty at 2014-02-14 07:37:08

Your name (required):


Your email(required, will not be shown to the public):


Your sites URL (optional):


Your comments:



More Tutorials by Daniel Malcolm
javac options in Java
Operator Precedence in Java
Calling Multiple Listeners in JSF
Using free() Function in C
ForwardAction in Struts
Listing Files and Directories sample program in C
Binary Tree - (Self-referential Structures) example program in C
A simple program using EL in JSP
Command-line Arguments in C
Example Calculator program in C - describing use of External Variables in C
Assignment Operators and Expressions in C
The for statement in C
JSF Basics
assert() Versus Exceptions in C++
RMS Basics in J2ME

More Tutorials in C++
Two-Dimensional Array Manipulation in C++
Calculate average using Two-Dimensional Array in C++
Compute the square root of the sum of the squares of an array in C++
Matrix using nested for loops in C++
Sorting an array of Strings in C++
Calculating total based on the given quantity and price in C++
Compiling and Linking Multiple Source Files in C++
Enumerations in C++
Program to add two numbers in C++
Comments in C++
while loop in C++
for loop in C++
Programming errors a compiler will detect in C++
if in C++
Using the Built-in Arithmetic Types in C++

More Latest News
Most Viewed Articles (in C++ )
Difference between Procedural, Structured, and Object-Oriented Programming
C++ Destructors Versus Java Finalization
Using Comments in a C++ Program
cin.ignore() in C++
Using cout.width() in C++
Advanced if Statements in C++
while Loops in C++
Multiple statements in for loops in C++
Using switch Statements in C++
Pointers to functions in C++
Sorting an array of Strings in C++
Calculating total based on the given quantity and price in C++
Demonstration of Prefix and Postfix operators in C++
Demonstrating global and local variables in C++
C++ Recursion function explained using Fibonacci series
Most Emailed Articles (in C++)
Returning values from a function in C++
Public versus Private members in C++
while (1) Loops in C++
The indirection operator (*) - dereference operator.
const Pointers in C++
Using Comments in a C++ Program
continue and break statements in C++
Calculate average using Two-Dimensional Array in C++
Compute the square root of the sum of the squares of an array in C++
Sorting an array of Strings in C++
Specifying default values to function parameters in C++
Dot (.) vs Arrow (->) to access data members in C++
Stray or Dangling Pointers in C++
Two-Dimensional Array Manipulation in C++
Calculating total based on the given quantity and price in C++