Why is this infinite for loop terminating after some time?
本问题已经有最佳答案,请猛点这里访问。
我正在运行这个无限的
1 | for(int i = 10; i > 0; i++) { } |
但如果我在这个
当它达到2147483647时,
这使得条件
在爪哇,这是一个完美定义的行为:在C或C++中,你不能这么做。
如果你想在循环中打印一些东西,那么循环的速度会大大降低,你可能已经没有耐心了。把EDOCX1[3]的当前值合并到输出中,你自己看看:即使是每秒1000次的输出迭代也需要将近一个月才能到达环绕点!
算术整数运算以32位精度执行。当一个操作的结果值大于32位(整型变量可以容纳的最大大小)时,则仅考虑低32位,而丢弃高阶位。当msb(最高有效位)为1时,该值被视为负数。在你的情况下,当它变成消极的,条件变成错误。