66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Infinite Loops | ||
|  | --- | ||
|  | # Infinite Loops
 | ||
|  | 
 | ||
|  | An infinte loop is a loop statement (`for`, `while`, `do-while`) which does not end on its own. | ||
|  | 
 | ||
|  | The test condition of a looping statement decides whether the loop body will execute or not. So a test condition which is always true will keep on executing the body of the loop, forever. That's the case in an infinte loop. | ||
|  | 
 | ||
|  | Examples: | ||
|  | 
 | ||
|  | ```java | ||
|  | // Infinite For Loop | ||
|  | for ( ; ; ) | ||
|  | { | ||
|  |     // some code here | ||
|  | } | ||
|  | 
 | ||
|  | // Infinite While Loop | ||
|  | while (true) | ||
|  | { | ||
|  |     // some code here | ||
|  | } | ||
|  | 
 | ||
|  | // Infinite Do While Loop | ||
|  | do | ||
|  | { | ||
|  |     // some code here | ||
|  | } while (true); | ||
|  | ``` | ||
|  | 
 | ||
|  | Normally, if your loop is running infinitely, it is an error that should not occur as an infinite loop does not stop and prevents the rest of the program from running. | ||
|  | 
 | ||
|  | ```java | ||
|  | for(int i=0;i<100;i++){ | ||
|  | 
 | ||
|  |     if(i==49){ | ||
|  |     i=0; | ||
|  |     } | ||
|  | 
 | ||
|  | } | ||
|  | ``` | ||
|  | 
 | ||
|  | The loop above runs infinitely because every time i approaches 49, it is set to be 0.This is to say that i never reaches 100 to terminate the loop, so the loop is an infinite loop.  | ||
|  | 
 | ||
|  | But a program stuck in such a loop will keep using computer resources indefinitely. This is undesirable, and is a type of 'run-time error'. | ||
|  | 
 | ||
|  | To prevent the error, programmers use a break statement to break out of the loop. The break executes only under a particular condition. Use of a selection statement like if-else ensures the same. | ||
|  | 
 | ||
|  | ```java | ||
|  | while (true) | ||
|  | { | ||
|  |     // do something | ||
|  |      | ||
|  |     if(conditionToEndLoop == true) | ||
|  |         break; | ||
|  |      | ||
|  |     // do more | ||
|  | } | ||
|  | ``` | ||
|  | 
 | ||
|  | The main advantage of using an infinite loop over a regular loop is readability. | ||
|  | 
 | ||
|  | Sometimes, the body of a loop is easier to understand if the loop ends in the middle, and not at the end/beginning. In such a situation, an infinite loop will be a better choice. | ||
|  | 
 |