有没有办法在Java中暂停for循环?那么有没有办法仅在出现提示时进行一次迭代?我读了这个http://answers.yahoo.com/question/index?qid=20100212201605AAazS73,该解决方案似乎可能存在一些问题,主要是因为我不完全了解for循环检查其标头的顺序。我想到的唯一可以完成类似任务的方法如下

    do {
        if (FLAG) {
            //Do procedure
            i++;
            FLAG = false;
        }
    } while ( i < 6);

当该标志为真时,该过程完成并且计数器向前移动一个。不过,我不喜欢这样,因为只要我没记错,只要计数器低于6,它就会一直循环播放。有任何想法吗?

-很抱歉,您不清楚。在我的情况下,FLAG是一个可以从另一个类调用的静态布尔值。我提到的程序取决于我。

最佳答案

当遍历一个for循环(例如下面的循环)时,它将执行以下操作

for (int i = 0; i < 6; i++) {
    // Do stuff
}
  • 它声明变量i并分配一个值0
  • 它检查条件i < 6。如果为true,则继续执行步骤3。否则,转到步骤6。
  • 遍历循环的主体。
  • 由于for循环标头中的i,因此将变量i++递增。
  • 转到步骤2。
  • 循环结束。

  • 至于您的目标,我不确定您的目标是什么。您是否想使用阻止方法调用来暂停?如果是这样,那么类似的事情将起作用:
    for (int i = 0; i < 6; i++) {
        System.in.readLine();
    }
    

    另外,您可以使用某种可轮询的标志来检查循环是否应该继续,例如:
    for (int i = 0; i < 6; i++) {
        while (paused) {
            // An infinite loop that keeps on going until the pause flag is set to false
        }
    }
    

    希望这会有所帮助。

    07-28 03:19
    查看更多