java for循环以“ true”作为停止条件?

时间:2018-12-05 22:37:25

标签: java for-loop

我有一个需要实现的程序,其中包含以下代码:

for (int n = 1024; true; n+=n)

我找不到具有这种格式的Java循环的任何其他示例。这是什么意思?我已经尝试进行研究,但是我什至不知道要搜索什么-这对我来说完全陌生。

2 个答案:

答案 0 :(得分:0)

语句is described in the language spec的基础:

for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement

您正在询问Expressiontrue时的情况。 (上面的方括号表示它是可选的。)

其含义如下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);