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  | |||
|  |  }  | |||
|  | ``` | |||
|  | 
 | |||
|  | 在常规循环上使用无限循环的主要优点是可读性。 | |||
|  | 
 | |||
|  | 有时,如果循环在中间结束,而不是在结束/开始,则循环体更容易理解。在这种情况下,无限循环将是更好的选择。 |