我有一个简单的代码,应该是一个无限循环,因为x将永远增长,并将始终保持大于j.

int x = 5;

int y = 9;

for (int j = 0; j < x; j++) {

x = x + y;

}

System.out.println(y);

但是按原样,它打印y并且不会无休止地循环.我无法弄清楚为什么.但是,当我按以下方式调整代码时:

int x = 5;

int y = 9;

for (int j = 0; j < x; j++) {

x = x + y;

System.out.println(y);

}

System.out.println(y);

它变成了无限循环,我不明白为什么. java是否认识到它是无限循环并在第一种情况下跳过它但是必须在第二种情况下执行方法调用,以便它按预期运行?

困惑:)

解决方法:

这两个例子都不是无穷无尽的.

问题是Java中的int类型(或几乎任何其他常用语言)的限制.当x的值达到0x7fffffff时,添加任何正值将导致溢出,x变为负值,因此低于j.

第一个和第二个循环之间的区别在于内部代码需要花费更多时间,并且在x溢出之前可能需要几分钟.对于第一个示例,它可能需要不到第二个或最有可能的代码将被优化器删除,因为它没有任何影响.

如讨论中所述,时间将在很大程度上取决于OS如何缓冲输出,是否输出到终端仿真器等,因此它可能远高于几分钟.

标签:java,for-loop,infinite-loop

来源: https://codeday.me/bug/20190928/1827153.html

java不要无限循环_java – 看似无限循环终止,除非使用System.out.println相关推荐

  1. java for怎么跳出_java跳出for循环的方法

    java跳出for循环的方法 发布时间:2020-06-26 15:56:42 来源:亿速云 阅读:193 作者:Leah 这篇文章将为大家详细讲解有关java跳出for循环的方法,文章内容质量较高, ...

  2. java鸡兔同笼用循环_Java使用for循环解决经典的鸡兔同笼问题示例

    Java使用for循环解决经典的鸡兔同笼问题示例 发布时间:2020-10-04 06:06:05 来源:脚本之家 阅读:138 作者:yzccc 本文实例讲述了Java使用for循环解决经典的鸡兔同 ...

  3. java 结束循环_java中结束循环的方法

    java中结束循环的方法 发布时间:2020-06-25 11:31:06 来源:亿速云 阅读:180 作者:Leah 这篇文章将为大家详细讲解有关java中结束循环的方法,小编觉得挺实用的,因此分享 ...

  4. java怎么循环_java怎么实现循环

    Java是顺序结构的程序只能被执行一次.如果你要同样的操作执行多次,就需要使用循环结构. java中有三种主要的循环结构:while 循环 do...while 循环 for 循环 在java5中引入 ...

  5. java scanner怎么循环_java怎么实现循环输入一个数?

    java是一种面向对象的编程语言.它其中包含着许多的类库,当我们在编码时,可以通过调用类库中的方法来实现所要的功能.本篇文章中我将和大家讲讲java如何实现循环输入. 想要实现循环输入,我们需要调用S ...

  6. java选择循环_java选择和循环结构

    选择和循环结构 顺序 (1)按照程序的流程从上而下执行流程. 选择结构 If 概念 对条件判断[一个条件的结果:true:false] 执行判断结果,所想要处理的代码 如果(true){ System ...

  7. java结束内层循环_java中结束循环的标志break和continue语句

    break语句:用于结束整个循环,只能用于switch 和循环语句中. 当break使用在嵌套的循环中时,结束的是其所在的循环(即内循环) 那么怎样才能使其结束外层循环呢?这时就要使用跳转语句标记(标 ...

  8. java 自循环_java自学之:循环问题

    是这意思不? import java.util.Scanner; class  HotelSystem { public static void main(String[] args) { //代表楼 ...

  9. eclipse debug跳出for循环_Java Grammar:循环

    循环 老生常谈的一个控制流程了,我们在是使用数组和集合的时候,遍历元素的时候经常会用到循环的结构,Java具有非常灵活的三种循环机制: 根据是否知道循环的次数可以为分为while循环,do-while ...

最新文章

  1. 第二阶段团队项目冲刺站立会议(九)
  2. iPhone nano 被取消是因为乔布斯看到了风向?
  3. python输入逗号分隔值文件_如何在Python(Pygame)中显示逗号分隔值(.txt)文件中的前10个高分...
  4. 【产品】腾讯内部的顶级产品课:灵动在细节
  5. Apollo产品对比
  6. 用 Go 解析复杂 JSON 的思路
  7. 匿名内部类和匿名类_匿名schanonymous
  8. 浅谈基于TCP和UDP的协议设计
  9. 启动马达接线实物图_东元伺服驱动马达
  10. 已经显现了出来的飞秋下载
  11. POJ-2151 Check the difficulty of problems 概率DP
  12. 循环,数组,函数作业
  13. 优秀程序员都有哪些编程习惯?
  14. latex 基本用法
  15. mysql数据库的基本管理
  16. 继承Thread类来创建多线程
  17. 【深浅拷贝的实现方式】
  18. 索尼Xperia S_4.0一键ROOT工具┇_┇免解锁┇_┇一分钟ROOT┇_┇
  19. Play 2.6 使用Ebean
  20. Extjs中加载异步树的最简单例子实现

热门文章

  1. MaxCompute管家详解--管家助力,轻松玩转MaxCompute
  2. 如何加快 Node.js 应用的启动速度
  3. 共享学习:蚂蚁金服数据孤岛解决方案
  4. 技术架构演进|0到千万DAU,微淘如何走过?
  5. AnalyticDB for PG 如何作为数据源对接帆软 FineBI
  6. AliOS Things全链路优化-CoAP FOTA
  7. 泡着枸杞写bug的三流程序员凭什么逆袭到一线大厂?
  8. 一文带你了解混淆矩阵!
  9. 触发死锁怎么办?MySQL 的死锁系列:锁的类型以及加锁原理了解一下!
  10. 3类6种,主流容器操作系统全比较