For Loop In C++ | Syntax, Working, Types & More (+Code Examples)
A loop in computer programming allows programmers to run a block of code repeatedly for a set number of times or until a particular condition is satisfied. In other words, they allow us to perform repetitive tasks with a high degree of automation and efficiency. There are primarily three kinds of loops: for, while, and do-while.
In this article, we will focus on the for loop in C++ programming and discuss the syntax, its uses, and more with the help of detailed code examples.
As mentioned before, there are generally three types of loops used in C++:
- For loop: It allows users to execute a block of code a specific number of times.
- While loop: It allows users to execute a block of code if a specific condition is true.
- Do-while loop: This allows users to execute a block of code at least once and then repeatedly execute it if a specific condition is true.
What Is A For Loop In C++?
A for loop in C++ language is a fundamental construct that enables developers to iterate over a block of code multiple times. It is frequently used when we already know the number of iterations, making it simpler to write effective and brief code.
- We have a counter variable which is set to the initial value for the first iteration.
- The value of the variable for loop is increased/ decreased (updation expression) after every iteration.
- The C++ for loop iterates as long as the predefined condition (also known as test expression) remains true. Meaning, the loop terminates if the statement expression/ condition becomes false.
This structure allows programmers to control the flow of their code and perform repetitive tasks with ease.
Syntax Of For Loop In C++
for (initialization; condition; increment/decrement) {
// code to be executed
}
Here,
- The for keyword marks the beginning of the for loop.
- The circular braces () contain the loop conditions/ elements and the curly brackets {} contain the code to be executed during every iteration.
The breakdown of the other elements (inside the circular braces) of syntax to create the for loop in C++ is given below.
Elements Of The For Loop In C++
In addition to the components explained above, the C++ for loop has three primary elements:
- Initialization expression: This statement is executed only once, at the beginning of the for loop. It initializes the loop control variable, which keeps track of the frequently/ number of times the loop has been executed. This often involves setting a variable's initial value to 0.
- Condition expression: Every time the C++ for loop iterates, this Boolean expression is evaluated. The loop keeps running if the condition is true. The loop terminates if the condition is false. Any expression that evaluates to a Boolean value can be the loop condition.
- Increment/Decrement: This statement/ expression is executed after every iteration of the loop. It defines how to modify the loop control variable and is hence called the update expression. Typically, this involves incrementing or decrementing the value of the variable by a fixed amount.
How Does A For Loop In C++ Work?
The diagram above illustrates the flow of control through a for loop in C++ programs. The step-by-step working of the basic cpp for loop is as follows:
- Initialization: A counter variable is initialized with a starting value at the beginning of the loop. This variable is used to track the number of the current iteration.
- Loop Condition Check: Before each iteration, we check the value of counter variable as per the conditional limit (e.g., i < 10). If the condition evaluates to true, the loop continues. If the condition evaluates to false, the loop terminates.
- Loop Body Execution: The loop body consists of code statements or block of executable instructions. These instructions are performed for each element in the sequence. It could involve computations, changing data, or calling functions.
- Increment/ Decrement: After executing the loop's body, the counter variable is updated (incremented or decremented). The loop then goes back to step 2 to recheck the condition.
- End: The loop repeats this process until the condition becomes false, at which point the loop stops.
Examples Of For Loop Program In C++
Now that we have a clear understanding of the syntax and functionality of the for loop in C++, let's look at a few code examples.
Example 1: To Find The Factorial Of A Number Using For Loop In C++
In this example, we’ll use a C++ for loop to calculate the factorial of a given number step by step.
Code Example:
Output:
Enter a number: 5
Factorial of 5 is: 120
Explanation:
In C++ program above,
- We start by including the <iostream> header file, which allows us to use input and output streams. We also use the namespace std; directive to avoid prefixing standard library names with std::.
- Next, inside the main() function, we declare two variables: n to store the user input and factorial, initialized to 1, to keep track of the factorial result.
- We then use the cout statement to prompt the user to enter a number, read the input using the cin statement, and store it in the variable n.
- Then, we define a for loop to calculate the factorial of the number n. Here:
- We initialize the loop control variable i with 1 to make the loop start from first value.
- After that, we define the loop condition to check if i is less than or equal to n, i.e., i<=n, (using relational operator).
- If the condition is false, the loop terminates. If the condition is true, the loop continues execution of the code block.
- Inside the loop body, we declare a variable factorial and use compound assignment operator to update its value to the current value multiplied by i (i.e., factorial *=i, means, factorial = factorial*i).
- After every iteration, we increment the value of i by 1 to move to the next number.
- As the loop continues iteration, it keeps accumulating the product of all numbers from 1 to n in the variable factorial.
- We repeat this process until i exceeds n (loop condition becomes false), at which point the loop terminates and the variable factorial holds the factorial of n.
- After that, we use the cout command to display the factorial of the number n.
- Finally, the main() function returns 0 to indicate that the program has been executed successfully.
Example 2: To Generate & Print A Fibonacci Series Using For Loop In C++
In this example, we’ll generate a fibonacci series using a for loop in C++ to calculate each term sequentially.
Code Example:
Output:
Enter the number of terms: 7
Fibonacci Series: 0, 1, 1, 2, 3, 5, 8,
Explanation:
In the example C++ program,
- Inside the main() function, we declare four variables: n to store the number of terms in the Fibonacci series, t1 initialized to 0 (the first term of the series), t2 initialized to 1 (the second term), and t3 to hold the next term in the series.
- Next, we use cout statement to prompt the user to enter the number of terms they want in the Fibonacci series, read the input using cin statement and store it in the variable n.
- We also print a string message marking the Fibonacci series, using cout.
- Then, we define a for loop to generate and print the Fibonacci series, as follows:
- We initialize the loop variable i to 1 and it continues iteration as long as i is less than or equal to n (loop condition).
- In every iteratoin, we use cout to print the current term t1, followed by a comma seperator and a white space.
- Then, we calculate the next term t3 in the series by adding t1 and t2 (using addition operator).
- After that, we update t1 to be the previous value of t2, and t2 to be the new value t3, preparing for the next iteration.
- After every iteration, we increment the value of i by 1 as per the updation condition.
- This loop continues iteration generating and printing the terms of the Fibonacci series until n terms.
Check out this amazing course to become the best version of the C++ programmer you can be.
Ranged Based For Loop In C++
In C++11 and later versions, the C++ language added a new concept known as the range-based for loop, which is far more advanced than the traditional for-loop in C++.
A range-based for loop in C++ is used to iterate through a collection of elements (like arrays, vectors, etc.). For each element in the collection, the loop variable is automatically initialized with the current element's value, sparing the programmer from manually managing an index or loop counter variable.
Syntax Of Range Based For Loop In C++:
for (type variable: collection) {
// code to be executed for each element in the collection
}
Here,
- The term type denotes the data type of the elements stored in the collection, which in turn refers to the data structure that loop will iterate over.
- Variable denotes the loop variable that will store the value of the current collection element, it keeps changing with every iteration.
- The curly braces contain the code block which will be executed for each elementin the collection/ each iteration of the loop.
Code Example:
Output:
1 2 3 4 5
Explanation:
In the C++ code example, we include the <iostream> header file to handle input and output, and the <vector> header file to use the std::vector container.
- Inside the main() function, we declare and initialize a vector named numbers with the values {1, 2, 3, 4, 5}.
- Note that a vector in C++ is a dynamic array that can store multiple elements of the same type—in this case, integers.
- We then use a range-based for loop to iterate over each element in the numbers vector:
- In the loop header int number : numbers means that for each iteration, the current element from the numbers vector will be assigned to the variable number.
- During each iteration, the value of number is printed using std::cout, followed by a space to separate the elements.
- The loop automatically ends once all the elements in the vector have been printed.
Temporary Range Expression In For Loops In C++
A range-based for loop can also iterate over temporary range expressions, which are expressions that yield a temporary object to be iterated over. For example, you can use containers like vectors directly in the loop without storing them in variables:
for (auto x : std::vector<int>{11, 22, 33, 44, 55}) {
std::cout << x << " ";
}
In this case, the temporary vector {11, 22, 33, 44, 55} is created and iterated over within the loop without being stored as a variable.
Foreach Loop In C++
The range based for loop in C++ is also sometimes referred to as the foreach loop. An alternative syntax for this loop can be as follows:
for (auto element : container) {
// Do something with element
}
Here, the auto keyword helps automatically determines the type of element based on the container being iterated over. The C++ for loop continues iterations until all elements in the container have been processed.
Level up your coding skills with the 100-Day Coding Sprint at Unstop and earn your bragging rights today!
Nested For Loop In C++
Nested for loops in C++ are loops inside loops. The outer loop is executed once, and the inner loop is executed repeatedly for each iteration of the outer loop.
Syntax Of Nested For Loop In C++:
for (initialization; condition; increment) {
// Outer loop code
for (initialization; condition; increment) {
// Inner loop code
}
}
Here,
- As you can see, the second occurrence of for keyword is inside the curly braces following the first for keyword. This is the basic structure of nested loops, where we have an inner loop inside the outer loop. Both have initialization, condition, and increment statements.
- The initialization/ initial expression defines how to initialize the counter variables used in the loop statement.
- We define a condition to check if the loop should continue iterating, also referred to as loop condition.
- The increment statement defines how to update the loop variables after each iteration of loop.
Note that the inner loop completes a set number of iterations, for every single iteration of the outer loop. Look at the sample C++ program below which shows the implementation of nested for loops.
Code Example:
Output:
The sum of the two matrices is:
10 10 10
10 10 10
10 10 10
Explanation:
In this code example-
- We first declare and initialize two constant integer variables, rows and cols, with values of 3. They represent the dimensions (3x3) of the matrices.
- Next, we declare two 2D arrays, matrix1 and matrix2, with three rows and columns.
- The matrix1 holds the elements {1, 2, 3}, {4, 5, 6}, {7, 8, 9} while matrix2 holds {9, 8, 7}, {6, 5, 4}, {3, 2, 1}.
- We then declare a third 2D array/ integer matrix called sum (dimensions rows*cols) to store the outcome of the addition operation on first two arrays.
- Next, we use a nested for loop to iterate over the elements of the matrices and carry out the addition, as follows:
- The outer loop counter variable i tracks the rows, and the inner loop counter variable j tracks the columns.
- Inside the inner loop, we add the elements at the (i*j)th position in matrix1 and matrix2 and store it at the (i*j)th position in the sum matrix.
- The inner loop iterates through all the columns for every single row iteration by the outer loop.
- After both the loops terminate, the sum array will store the addition of matrix1 and matrix2.
- As mentioned in the code comments, we then print the sum array (representing the sums), using another set of nested for loops and std::cout statement.
- Once again, the outer loop iterates over the rows and inner loops iterates through all the columns in that row, printing the elements as we go.
- After a row is printed (inner loop), print the newline escape sequence which shifts the cursor to the next line before another iteration of the outer loop.
- Finally, the program ends with return 0, indicating successful execution.
Infinite For Loop In C++
A loop that never ends and continues to execute until the program is manually halted is known as an infinite for loop. In C++, we can create an infinite loop by using a condition that is always true or by leaving the termination condition empty.
Syntax Of Infinite For Loop In C++:
for (;condition; updating expression) {
// body of the loop
}
Here,
- As usual the for keyword marks the beginning of the loop, which does not have an initialization expression.
- Expression condition refers to the loop condition which we check to determine if the loop should continue iterating. In case of infinite for loop, this condition is always true, the loop will run indefinitely.
- The updating expression defines how to update loop variable after every iteration. Alternatively, we can omit this expression which will may also lead to the loop running infinitely.
Code Example:
Output:
This is an infinite loop
.............
.............
Explanation:
In the above code example,
- We declare an integer variable i and assign the value of 0, inside the main() function.
- The for loop the condition is that i be greater than or equal to zero (i >= 0), we check it before every iteration. And after every iteration we increment the value of i by 1.
- Inside the loop, we print the message "This is an infinite loop" to the console using cout and then move to the next line using endl.
- The loop condition will always be true as i starts at 0 and increases with each iteration, meaning it will never be less than 0.
- As a result, the loop keeps running indefinitely, making an infinite for loop.
- Note that even though there's a return 0; at the end of the program, it will never be reached because of the infinite loop.
Looking for mentors? Find the perfect mentor for select experienced coding & software experts here.
Conclusion
The for loop in C++ is a strong tool for repeating tasks or iterating across various data sets/ different types of data structures. In other words, it can be used for a fixed number of iterations as well as for iterating through arrays and other data structures.
- This loop is made up of three primary parts: initialization, condition, and update expression. They respectively define how the loop variable is initialized, the condition to check if the loop should continue for another iteration, and how the loop variable should be updated to ready for the next iteration.
- The typical for-loop in C++ enables fine-grained control over the loop's behavior.
- With the introduction of the ranged-based for loop in C++, iterating over a set of values or a container, like an array or vector, is made simpler. The shorter form of this loop's syntax makes the code more effective and understandable.
- The for loop and its variants are robust C++ building blocks that enable effective and adaptable control over program flow and data processing.
It is essential to choose the right type of for-loop in C++ programs, to ensure that the code is more effective, readable, and maintainable.
Also read- 51 C++ Interview Questions For Freshers & Experienced (With Answers)
Frequently Asked Questions
Q. Can we put a for loop in a for loop in C++?
Yes, you can use a for loop inside another for loop in C++ programming language. The concept of building a construct with one for loop inside another for loop, is known as a nested for loop in C++. Below is an example for nested for loop in C++ language.
Code Example:
Output:
Enter the number of rows: 3
*
* *
* * *
Explanation:
This program asks the user how many rows they want to print and then prints a pattern of stars using a nested for loop. The outer loop iterates through each row, while the inner body of loop iterates through each column within that row. A star is printed to the console after every inner loop iteration. This results in a pattern of stars, with each row having one more star than the one before it.
Q. What is ++ I and I ++ in for loop?
The notations ++I and I++ in for loop represent the increment operators in C++. They are the pre-increment and post-increment operators, respectively.
- While both increase the number, the first notation (++i) increases it before the current expression is evaluated.
- And the second notation (i++) increases it after the expression is evaluated.
Below is an example to give you a better understanding of this concept.
Code Example:
Output:
y = 5
z = 7
x = 7
Explanation:
Here, we first declare the integer variable x and set its initial value to 5.
- The value of x is then assigned to another integer variable, y using the post-increment operator (++), and x is then increased by 1 unit after that.
- As a result, the values of y and x are 5 and 6, respectively.
- The value of x is then increased by 1 using the pre-increment operator (++) before its new value is sent to z.
- The end consequence is that both z and x have values of 7.
- Finally, we print the values of y, z, and x using cout.
Q. What are the three types of loops?
In computer programming, a loop enables developers to run a block of code repeatedly, without having to write the code again and again, for a certain number of times or up until a specific condition is met. When writing computer programs, loops give programmers the ability to automate and efficiently complete repetitive tasks.
There are generally three types of loops used:
- For loop: which allows you to execute a block of code a specific number of times.
- While loop: which allows to execute a block of code if a specific loop condition is true.
- Do-while loop: This allows you to execute a block of code at least once and then repeatedly execute it if a specific condition is true.
Q. What is a Goto statement in C++?
The goto statement in C++ is a control transfer statement that allows the program execution to jump to a specific labeled statement within the same function or block. The program's execution jumps to the statement indicated by the label when the goto statement occurs in the code and continues from there.
The general syntax of the goto statement in C++ is as follows:
goto label;
...
...
label;
...
...
Code Example:
Output
0 1 2 3 4 Done!
Explanation:
In this illustration, we use a loop statement that outputs i's values from 0 to 4 is implemented using the goto instruction. The start label identifies the statement to which program execution will jump, and the loop continues there until the condition is no longer true. The program switches to the else block and writes "Done!" when i reaches 5.
Q. What is return 0 used for in C++?
The return 0 statement is typically used at the conclusion of the main function in C++. It statement suggests that the program has run successfully and returns a value of 0 to the calling process. In other words, the 0-return result implies the successful completion of the program without any errors.
Here's an example of how return 0 can be used at the end of the main function:
Code Example:
Output:
Be unstoppable
Example:
In this example, the main function prints "Be unstoppable" to the console and returns a value of 0 to the calling process.
Q. How do I get out of a loop in CPP?
Depending on the type of loop and the circumstance, there are several ways to escape a loop in C++. Some of the most common ways to do this are, using any of the break, exit, and Goto statements.
- In a loop such as for, while, or do-while, the break statement can be used to immediately exit the loop and continue executing the program outside of the loop.
- While the goto statement can also be used to jump out of a loop to a labeled statement outside the loop.
- The exit function in C++ is used to end a program completely and hand control back to the operating system.
- When a fatal error occurs, or the program needs to end for whatever reason, the exit function is commonly utilized.
Q. Can we use the for each loop in C++?
Yes, a for-each loop, also referred to as a range-based loop, is a condensed form of the standard for loop. This type of Cpp for loop offers a simpler approach to iterating through container elements and was first introduced in C++11.
The for-each loop comes in handy when we don't need to know the current element's index or when we don't know the container size in advance. It makes the code more readable and maintainable by streamlining the syntax and lowering the chance of errors. For example, to print all the elements of a vector using a for-each loop, we can write:
Code Example:
Output:
1 2 3 4 5
Explanation:
The for-each type of for loop in C++ shortens the code and makes it easy to integrate over elements. Here are a few other articles that you might be interested in reading to know more about interesting topics in C++:
- Strings In C++ | Functions, How To Convert & More (With Examples)
- Typedef In C++ | Syntax, Application & How To Use It (With Examples)
- Storage Classes In C++ & Its Types Explained (With Examples)
- References In C++ | Declare, Types, Properties & More (+Examples)
- Dynamic Memory Allocation In C++ Explained In Detail (With Examples)