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