java - 为什么这个循环不是无限的

标签 java

<分区>

谁能告诉我正确的道路

为什么在下面的代码中,开始和结束消息之间有一秒的间隔?

System.out.println("Start:" + LocalTime.now());
for (int i = 0; i > -1; i++) { /*Infinite loop*/ }
System.out.println("End  :" + LocalTime.now());

我试图找出 DCE 是否需要时间来处理这种类型的代码,但找不到太多。

最佳答案

因为您已将“i”定义为 int,范围从 -2,147,483,648 到 2,147,483, 647。一旦达到 -2147483648(您的代码从 0 开始循环并递增 1),条件变为假并且循环中断。

    int i;
    System.out.println("Start: " + LocalTime.now());
    for (i = 0; i > -1; i++) { /*Infinite loop*/ }
    System.out.println("End  :" + LocalTime.now());
    System.out.println("i  :" + i);

尝试上面的操作,您会看到末尾的值为 -2147483648,因此它脱离了循环。

关于java - 为什么这个循环不是无限的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51909670/

相关文章:

java - 将相对布局中的中心 View 与相对布局之外的另一个 View 对齐

java - 为什么我的 MIDI 程序没有完成/关闭?

java - JPA 删除失败(违反完整性约束 : foreign key no action) - data model too convoluted?

java - Android 从另一个类更新布局

java - Antlr AST 构建

java - 为什么创建更多线程时总运行时间比创建更少线程时更慢

java - cassandra lucene - 如何获得更高的分数

java - System.gc问题

java - 单例类如何创建多个对象?

java - 贪吃蛇游戏 - 只绘制蛇的最大长度为 2