加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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,并且循环将永远继续.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读