Nested Loops in C++
By: Daniel Malcolm
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.
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.
Archived Comments
1. good
View Tutorial By: qwerty at 2014-02-14 07:37:08
2. pritnt
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
us
View Tutorial By: osama at 2013-02-05 03:16:15
3. enter no of line: 5 not fix value
out put is:
1 2 3 4 5
2 4 6
View Tutorial By: mark at 2013-01-31 14:30:00
4. help me for this nested for loops
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
View Tutorial By: nadzirah at 2012-10-12 15:33:20
5. answer of comment No, 17
#include<iostream>
#include<conio.h>
View Tutorial By: Rashid Jabbar at 2012-09-16 20:23:11
6. how to print:
A
A B
A B C
A B C D
A B C D E
say me the fo
View Tutorial By: ajay at 2012-09-16 08:01:02
7. How we print this structure in C++, with nested loop:
*****
****
***
View Tutorial By: Hussnain at 2012-01-27 09:19:41
8. 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
9. aoa i am for the first time learning programing plz help me how to solve nested loops progarms i am
View Tutorial By: manaal siddiqui at 2011-11-02 09:38:00
10. teacher namin na si Engr. Lumasag nakakasira ng bait kong magturo kasi di niya ituturo lahat slight
View Tutorial By: rossy at 2011-10-06 06:12:53
11. sooooooooooooooooo gr8 jop!!
View Tutorial By: monti at 2011-06-14 08:40:55
12. an excellentttttttt siteee
View Tutorial By: raza at 2011-04-02 10:39:46
13. an excellentttttttt siteee
View Tutorial By: raza at 2011-04-02 10:37:37
14. 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
15. hi how ru
anybody tell me that how to print
*****
*
*
*
*
View Tutorial By: imran at 2010-12-10 00:34:51
16. I want some more.. I really want to learn
View Tutorial By: jhan Anderson at 2010-10-12 04:04:08
17. samin din ala ung prof namin d natuturo dapat matutunan
View Tutorial By: shireen at 2010-09-17 00:55:34
18. this site is excellent & too easy to understand.
View Tutorial By: Gaurav Kushwaha at 2010-08-16 06:30:45
19. good job.. i understand it clearly..
its indeed a big help..
View Tutorial By: xmplexd at 2010-08-04 02:12:30
20. well done!!nice work
View Tutorial By: Dxy at 2010-07-26 00:46:55
21. Si AIZA DIN< DI MARUNONG MAGTURO
View Tutorial By: Agnes at 2010-06-25 22:34:29
22. very nicely explained,
thank you
View Tutorial By: Amin at 2010-04-14 09:40:30
23. thnks for the loop
View Tutorial By: Benavidez,Jam at 2010-02-02 01:57:48
24. a big thanks!
View Tutorial By: xamae at 2010-01-13 02:52:51
25. nice///
View Tutorial By: MHARLON ALADEN at 2009-08-14 01:00:09
26. My teacher doesnt teach me right!
View Tutorial By: Anon at 2009-02-20 07:16:08
Comment on this tutorial
- Data Science
- Android
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Related Tutorials
Calculating total based on the given quantity and price in C++
Sorting an array of Strings in C++
Matrix using nested for loops in C++
Compute the square root of the sum of the squares of an array in C++
Calculate average using Two-Dimensional Array in C++
Two-Dimensional Array Manipulation in C++
Compiling and Linking Multiple Source Files in C++
Escape Sequences for Nonprintable Characters in C++
Using the Built-in Arithmetic Types in C++