为什么while循环在java和c中不同

时间:2016-04-07 05:36:44

标签: 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);
}

为什么?条件

时发生编译错误

1 个答案:

答案 0 :(得分:7)

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

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

while (i-- > 0)

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

P.S。我假设Java代码中缺少i的初始化是一个遗漏。