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