C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file

Miscellaneous

C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Char Array to String in C++ Constructor Overloading in C++ Default arguments in C++ Different Ways to Compare Strings in C++ Dynamic Binding in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++ Exception Handling in C++ vs Java Const Keyword in C++ Type Casting in C++ Static keyword in C++ vs Java Inheritance in C++ vs Java How to concatenate two strings in C++ Programs to Print Pyramid Patterns in C++ swap() function in C++ Structure of C++ Program Stringstream in C++ and its applications rand() and srand() in C / C++ C++ Ternary Operator C++ Scope of Variables While Loop Examples in C++ Star pattern in C++ using For Loops For Loop Examples in C++ Do-While Loop Examples in C++ Top 5 IDEs for C++ That You Should Try Once Assertions in C/C++ C++ Convert Int to String Continue in C++ While loop Diamond Pattern in C++ using For Loop How to Reverse a String in C++ using Do-While Loop How to Reverse a String in C++ using For Loop How to Reverse a String in C++ using While Loop Infinite loop in C++ Loops in C++ Returning Multiple Values from a Function using Tuple and Pair in C++ wcscpy(), wcslen(), wcscmp() Functions in C++

Infinite loop in C++

The term "infinite loop" refers to a loop that does not terminate the loop according to the condition. In some cases, an infinite loop may be required in programming, or a loop may become infinite when the exit condition becomes false again and again.

Applications

An infinite loop is useful for programs that receive user input and continuously generate output until the user exits the program manually.

The infinite loop can be utilized in the following scenarios:

1) If you're developing an application that allows the user to submit the long data having the loop 30,000 or 300,000,000 times. The code run infinitely and receiving the user input until the user presses Ctrl-C to terminate the application.

2) If you have a constant monitoring operation running on your servers.

3) As the server answers all client requests, it runs in an eternal loop. It breaks the endless cycle when the administrator manually shuts down the server.

4) When your server script listens for connections on a socket, this could be a useful feature.

5) Infinite loops are frequently used in video game programming.

There are various loop structures in C that can be used to produce an infinite loop. Following are the looping structures that define the endless loop:

  • For loop
  • While loop
  • Do-While loop

Infinite For Loop

A condition in for loop terminates the loop. The condition can be left blank if we wanted. We may also remove the initialization and repeat statements from the for loop. These fields are optional and can be left empty. Because the condition will never be false, the control will never exit the loop, which produce an infinite loop.

For loop syntax

for (
  <initial statement(s)>;
  <Condition expression>;
  <Repeat step(s)>
      )
{
  <Loop statement(s)>;
}

Infinite For loop:

for(;;);
     for(;;)
         {
            }

Infinite For Loop with True for Condition

For loop uses a boolean expression that evaluates the condition to be true or false. Instead of giving an expression, we can substitute the boolean value “true” for the condition which results an infinite loop.

Program:

#include <iostream>
using namespace std;
 int main()
 {
   for (; true; ) 
     {
      cout << "javaTpoint" << endl;
   }
}

Output:

javaTpoint
javaTpoint
javaTpoint
javaTpoint
javaTpoint
..
..
..

The string ‘’javaTpoint” will print at a time on the console infinitely. To terminate the execution of the program press CTRL and C together on the keyboard.

Infinite while loop in C

There is a condition statement in the while loop. This is a required expression that cannot be omitted. As a result, we must provide a true condition here. "TRUE", "1", "1==1", and so on are the TRUE statements.

While loop syntax

while (<Condition expression>)
{
  <Loop statement(s)>;
}

Infinite While loop

while (1);


while (1)
     {
       }

Infinite While Loop with TRUE condition

You can use a condition that always evaluates to true. But, you cannot use a TRUE boolean value in the condition of the while loop for infinite loop. The criterion 1 == 1 or 0 == 0 is always true.
The condition is always true and the loop will While loop run infinitely.

Program:

#include <iostream>
using namespace std;
 int main()
 {
While(1==1)
{
      cout << "javaTpoint" << endl;
   }
}

Output:

javaTpoint
javaTpoint
javaTpoint
javaTpoint
javaTpoint
..
..

The string “javaTpoint” prints one by one infinitely as the given condition is always true. To terminate the execution of the program press CTRL+C on the keyboard.


Infinite Do-While loop:

There is a condition statement in the while loop. This is a required expression that cannot be omitted. As a result, we must provide a true condition here. "TRUE", "1", "1==1", and so on are the TRUE statements.

Do-While loop syntax

do
{
  <Loop statement(s)>;
} while (<Condition expression>);

Infinite Do-While loop:

do {
      } while(1);

Infinite do-while Loop with No Update to Control Variables

When you forget to update the variables involved in the condition, you can end up with infinite loops.   

We have set variable “i” to 0 in the below example and want to print a string to the console until the value of i becomes 10.

In the example below, we would not use the update statement to increment ”i” for printing javaTpoint 10 times. So, the value of i would never change and the code will run infinitely with value of i. This result in an infinite do-while loop.

Program:

#include <iostream>
using namespace std;
 int main()
 {
i=0;
do
{
      cout << "javaTpoint" << endl;
   }while(i<10)
}

Output:

javaTpoint
javaTpoint
javaTpoint
javaTpoint
javaTpoint
..
..

Long Running Loops

It's recommended to add some delay to each loop. Otherwise, the process may consume all CPU cycles and cause the system to freeze. This may be required when the programmer is waiting for a condition to occur. A sleep statement releases the task to the scheduler and allowing other tasks to continue normally. This statement causes the current thread to suspend execution for a specified period.

For Loop;

for(;;)
{
Sleep(1);
}

While Loop:

while(1)
{
  Sleep(1);
}

Do-While Loop:

do
{
  Sleep(1);
}
while(1);

Debug infinite loops

A program enters an infinite loop and continue to execute the body of the loop. This type of problem may not occur very often and may occur due to a rare instance. On the other hand, these problems are simple to troubleshoot or debug.

We should write the break statement for checking the condition from where the loop become infinite. To get to the root of the problem, we need to figure out why the condition isn't becoming false.



ADVERTISEMENT
ADVERTISEMENT