65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Infinite Loops
 | ||
| localeTitle: 无限循环
 | ||
| ---
 | ||
| # 无限循环
 | ||
| 
 | ||
| infinte循环是一个循环语句( `for` , `while` , `do-while` ),它不会自行结束。
 | ||
| 
 | ||
| 循环语句的测试条件决定循环体是否执行。因此,始终为真的测试条件将永远继续执行循环体。在infinte循环中就是这种情况。
 | ||
| 
 | ||
| 例子:
 | ||
| 
 | ||
| ```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); 
 | ||
| ```
 | ||
| 
 | ||
| 通常情况下,如果您的循环无限运行,则该错误不应发生,因为无限循环不会停止并阻止程序的其余部分运行。
 | ||
| 
 | ||
| ```java
 | ||
| for(int i=0;i<100;i++){ 
 | ||
|  
 | ||
|     if(i==49){ 
 | ||
|     i=0; 
 | ||
|     } 
 | ||
|  
 | ||
|  } 
 | ||
| ```
 | ||
| 
 | ||
| 上面的循环无限运行,因为每次我接近49,它都被设置为0.这就是说我永远不会达到100来终止循环,所以循环是一个无限循环。
 | ||
| 
 | ||
| 但是在这样的循环中停留的程序将无限期地继续使用计算机资源。这是不合需要的,并且是一种“运行时错误”。
 | ||
| 
 | ||
| 为了防止错误,程序员使用break语句来摆脱循环。中断仅在特定条件下执行。使用像if-else这样的选择语句可以保证相同。
 | ||
| 
 | ||
| ```java
 | ||
| while (true) 
 | ||
|  { 
 | ||
|     // do something 
 | ||
|  
 | ||
|     if(conditionToEndLoop == true) 
 | ||
|         break; 
 | ||
|  
 | ||
|     // do more 
 | ||
|  } 
 | ||
| ```
 | ||
| 
 | ||
| 在常规循环上使用无限循环的主要优点是可读性。
 | ||
| 
 | ||
| 有时,如果循环在中间结束,而不是在结束/开始,则循环体更容易理解。在这种情况下,无限循环将是更好的选择。 |