Why while循环在java和c中的工作方式不同



我一直在想这个问题,当我尝试执行以下时,c和java都有不同的输出

在C:

int i=5;
while(i--)
{
   printf(i);
}

输出:54321

和在java中

int i=5;
while(i--)       // Compilation error 
{
  System.out.println(i);
}

为什么?条件

时发生编译错误

在Java中,积分类型(int、long等)和布尔类型之间存在分离。因此,在需要布尔值的情况下,不能使用返回int的表达式。

因此,Java中的条件必须是:

while (i-- > 0)

在C中,等于0的int可以被视为false,这就是while (i--)有效的原因。

附言:我假设Java代码中缺少i的初始化是一个遗漏。

最新更新