小编use*_*588的帖子

在Java中使用短基元的for循环中的错误?

我在Java中发现了一个非常奇怪的东西,似乎是一个bug.for循环不能正确评估32767处的短值条件(最大值,请参见此处).请参阅下面的示例代码.我在这里错过了什么吗?

for (short i = 32766; i <= 32767; i++) {
    System.out.println("i is now " + i);
    if (i < 0) {
        System.out.println("This should never be printed");
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

预期产量:

i is now 32766
i is now 32767
Run Code Online (Sandbox Code Playgroud)

实际产量:

i is now 32766
i is now 32767
i is now -32768
This should never be printed
Run Code Online (Sandbox Code Playgroud)

java for-loop short

0
推荐指数
1
解决办法
308
查看次数

标签 统计

for-loop ×1

java ×1

short ×1