このループは無限ではないのはなぜ

鋭い目 :

誰かがための正しい道に私を指示することができます

なぜ次のコードに、開始および終了MSG間の第二のギャップがありますか?

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

私は、DCEは、コードのこのタイプのために時間がかかりますが、はるかに見つけることができなかったかどうかを調べることを試みました。

Dewm:

あなたが定義されてきたように「i」は、それが-2147483648(0と増分1から始まるあなたのコードのループ)に達するとすぐ-2147483648から2147483、647のように範囲をintとして、条件は偽とループ休憩となります。

    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であるため、それがループの出てくるでしょう。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=209391&siteId=1