我有一个需要实现的程序,其中包含以下代码:
for (int n = 1024; true; n+=n)
我找不到具有这种格式的Java循环的任何其他示例。这是什么意思?我已经尝试进行研究,但是我什至不知道要搜索什么-这对我来说完全陌生。
答案 0 :(得分:0)
语句is described in the language spec的基础:
for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement
您正在询问Expression
为true
时的情况。 (上面的方括号表示它是可选的。)
其含义如下Sec 14.14.1.2所述:
- 如果 Expression 不存在或者存在并且其评估结果(包括可能的拆箱)为true,则执行包含的 Statement 。
...
- 如果存在 Expression ,并且其评估结果(包括可能的取消装箱)结果为false,则不会采取进一步措施,并且声明正常完成。
因此,存在Expression
,其值为true
(因为true
的值为true
)。因此,Statement
被执行,并且由于Expression
仍为true
,因此将继续执行。
因此,这是一个无限循环(除非循环内有中断,返回,抛出或System.exit
)。
答案 1 :(得分:-1)
为什么不使用另一个循环?例如使用do-while代替
for (int n = 1024; true; n+=n)
您可以使用以下方法来解决:
int n=1024;
do{
//your code
n+=n;
}while(condition==false);