2011-03-10 47 views
2

有没有办法控制循环的执行速度? 我有一个模拟运行30000步的循环。我想要可视化该循环中发生的事情,并在可能的情况下控制执行速度。任何想法我可以做到这一点?循环执行速度控制

回答

5

在循环内部放置一个Thread.sleep()语句。但要小心,你必须处理这个异常。

for(int i = 0; i < 30000; i++) { 

    ... 

    try { 
     Thread.sleep(100); 
    } 
    catch(InterruptedException e) { 
     // do something with e 
    } 
} 
+0

异常?? – 2011-03-10 15:36:45

+0

刚刚更新:) – adarshr 2011-03-10 15:37:48

+0

可能要注意的是,如果您需要特定的速度,则需要测量执行时间和三角洲睡眠。 – 2011-03-10 15:40:36

6

您可以将一个sleep添加到循环中以暂停每次迭代。

一个更好的问题是,你如何形象化?我猜你正在控制台上观看文本,如果是这种情况,你可能要考虑输出到文件而不是屏幕。这样,您可以在闲暇时阅读输出内容,而不必为程序添加人为减速。

......但如果通过“可视化”它是一个真正的图形用户界面的东西,那么是的,睡眠可能会更好。

+1

甚至比输出文本到文件更好的是使用带调试器的IDE - 所以你可以在每一步检查变量等,例如:Eclipse, – 2011-03-10 15:41:53

+0

@ rib.usa:好点! 30k迭代很难说如果OP正在寻找一般模式或调试一个特定的错误。但是,我同意OP应该看看一个可视化调试器。 – FrustratedWithFormsDesigner 2011-03-10 15:43:02

+0

是的,我打算在一个图形中输出结果,图形会改变当程序运行时 – Giannis 2011-03-10 15:44:03

1

你可以放入你的循环Thread.sleep(latency);其中延迟以毫秒为单位。

0

你可以尝试使用'Thread.sleep()',就像其他人说的那样。但要“知道”在循环中发生了什么,我认为你最好调试它..我认为最糟糕的情况是打印屏幕上的一切(外循环不会这么糟糕,但考虑50 +循环它变得不切实际