我始终牢记这个问题,当我尝试执行以下操作时,c和java都有不同的输出
在C:
int i=5;
while(i--)
{
printf(i);
}
输出:54321
和java
int i=5;
while(i--) // Compilation error
{
System.out.println(i);
}
为什么?条件
时发生编译错误答案 0 :(得分:7)
在Java中,整数类型(int,long等等)和布尔类型之间存在分离。因此,在需要布尔值的情况下,不能使用返回int的表达式。
因此,Java中的条件必须是:
while (i-- > 0)
在C中,等于0的int可以视为false,这就是while (i--)
有效的原因。
P.S。我假设Java代码中缺少i
的初始化是一个遗漏。