java中for循环的特殊行为
发布时间:2020-12-15 04:31:13 所属栏目:Java 来源:网络整理
导读:今天在阅读拳击和自动拳击时,我想出了一个场景,并发现我被困在无限循环中的奇特行为. 我检查了我的代码两次,但我没有发现任何错误. 如果有人可以看,并建议我在哪里做错了,这样我就会出现这个无限循环 请找到下面的代码. public class InTheLoop {public stat
今天在阅读拳击和自动拳击时,我想出了一个场景,并发现我被困在无限循环中的奇特行为.
我检查了我的代码两次,但我没有发现任何错误. 请找到下面的代码. public class InTheLoop { public static final int END = Integer.MAX_VALUE; public static final int START = END - 100; public static void main(String[] args) { int count = 0; //Infinite loop starts. for (int i = START; i <= END; i++) { count++; System.out.println(count); } // This never got printed. System.out.println("hi I am out of for loop" +count); } } 解决方法
请注意,您的END等于整数可以容纳的最大可能值(值为2147483647).这意味着对于我可能持有的任何值,i< = END始终为真.当我实际达到2147483647时,它仍然是< = END.在下一次迭代中,您尝试将其递增1,这会导致溢出,并且我变为-2147483648,仍然是< = END,并且循环将永远继续.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |