这两个例子并不是无止境的。
问题是
intJava(或几乎所有其他通用语言)中类型的限制。当值
x达到时
0x7fffffff,将任何正值相加都会导致溢出,并且
x变为负值,因此小于
j。
第一个循环与第二个循环之间的区别在于,内部代码需要花费更多时间,并且可能要花几分钟才能
x溢出。对于第一个示例,它可能会花费不到第二秒的时间,或者很可能是代码会因为没有任何效果而被优化器删除。
正如讨论中提到的,时间将很大程度上取决于OS如何缓冲输出,是否将其输出到终端仿真器等,因此它可能比几分钟要高得多。

这两个例子并不是无止境的。
问题是
intJava(或几乎所有其他通用语言)中类型的限制。当值
x达到时
0x7fffffff,将任何正值相加都会导致溢出,并且
x变为负值,因此小于
j。
第一个循环与第二个循环之间的区别在于,内部代码需要花费更多时间,并且可能要花几分钟才能
x溢出。对于第一个示例,它可能会花费不到第二秒的时间,或者很可能是代码会因为没有任何效果而被优化器删除。
正如讨论中提到的,时间将很大程度上取决于OS如何缓冲输出,是否将其输出到终端仿真器等,因此它可能比几分钟要高得多。