时发生编译错误
我一直在想这个问题,当我尝试执行以下时,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
的初始化是一个遗漏。