java - 意外的无限字节循环

标签 java types for-loop byte infinite-loop

我有以下循环:

for (byte i = 0 ; i < 128; i++) {
    System.out.println(i + 1 + " " + name);
}

当我执行我的程序时,它会在无限循环中打印从 -128 到 127 的所有数字。为什么会这样?

最佳答案

byte 是 1 字节类型,因此可以在 -128...127 之间变化,因此条件 i < 128 始终为真。当您将 1 添加到 127 时,它会溢出并在(无限)循环中变为 -128 等等......

关于java - 意外的无限字节循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3975826/

相关文章:

java - 全局设置Hibernate访问策略?

java - 如何管理Web服务调用和数据库之间的分布式事务协调?

java - ArrayList 的数组?

java - 整数总是可以解析为长整数吗?

python - 使用循环描述多个条件

java - 使用 Web 服务将对象作为 SOAP 请求的一部分传递并将对象作为响应返回...

json - 如何使用 jq 获取根 key 和 key 类型

更改在 C 中循环的回调函数中的全局变量

javascript - 在对象内迭代对象数组 - javascript?

c# - 更改数据表列的类型