public void execute(){
for (int i=0;i<=100000000;i++)
{
System.out.println(i);
}
}
此方法只需执行两秒钟。这意味着在 for 循环中开始执行此方法后,如果两秒钟后打印 88888,则程序必须自行停止。这可能吗?
public void execute(){
for (int i=0;i<=100000000;i++)
{
System.out.println(i);
}
}
此方法只需执行两秒钟。这意味着在 for 循环中开始执行此方法后,如果两秒钟后打印 88888,则程序必须自行停止。这可能吗?
您可以break;
在循环内的任何时间使用以立即退出循环。这适用于 Java 中的任何循环(例如for
, while
, do...while
)。例子:
public void execute() {
long startTime = System.currentTimeMillis();
for (int i = 0; i <= 100000000; i++) {
long currentTime = System.currentTimeMillis();
if ((currentTime - startTime) >= 2000) {
break;
}
System.out.println(i);
}
}
一旦时间流逝大于或等于 2 秒(大致),这将导致循环退出。
编辑:正如@LouisWasserman 评论的那样,您可以System.nanoTime()
更精确地使用并且不受闰秒之类的影响。如果您改用它,只需检查差异是否大于或等于以2000000000
说明精度。
您可以使用System.currentTimeMillis()
. 像这样的东西:
public void execute(){
long beginMillis = System.currentTimeMillis();
for (int i=0;i<=100000000;i++)
{
if (System.currentTimeMillis() - beginMillis > 2000) {
break;
}
System.out.println(i);
}
}
一个侧节点 - 获取当前时间实际上很慢,所以我建议在给定次数的迭代后进行检查。您不会在 2 秒后停止,但减速会更小。
正如@Marc Baumbach 所提到的,break;
如果您处于循环中,则可以使用。
只是补充一下,如果你想真正退出一个方法而不是仅仅退出循环,你可以使用return;
关键字
public class Tester {
public static void main(String args[]) {
for(int i=0; i<10; i++) {
System.out.println(i);
if(i==5) return;
}
}
}
会打印...
0
1
2
3
4
5