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

Eag*_*Eye 3 java

有人可以指引我走向正确的道路

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

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

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

Mah*_*ahi 6

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

    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);
Run Code Online (Sandbox Code Playgroud)

尝试上面,你会看到最后的值是-2147483648,因此它出来了循环.


归档时间:

查看次数:

91 次

最近记录:

7 年,6 月 前