Java 如何使程序工作10秒?10秒后,程序将停止 公共类随机打印{ 公共静态打印(){ 对于(int i=0;i=(10*1000)){ System.out.println(“10秒停止!”); 打破 } } } }

Java 如何使程序工作10秒?10秒后,程序将停止 公共类随机打印{ 公共静态打印(){ 对于(int i=0;i=(10*1000)){ System.out.println(“10秒停止!”); 打破 } } } },java,Java,这是我的java代码,程序是“randomprint()”,但10秒后,程序没有停止!(程序将始终有效)。你能帮我让程序在工作10秒后停止工作吗?谢谢大家! 在方法randomprint中,完全删除for循环,但保留它的一行正文,它将按预期工作。我对您的代码做了一些更改,因为for循环必须中断,所以我们将在您想要的时间中断它,现在我将把时间传递给您的方法,看 public class RandomPrint { public static void randomprint(){

这是我的java代码,程序是“randomprint()”,但10秒后,程序没有停止!(程序将始终有效)。你能帮我让程序在工作10秒后停止工作吗?谢谢大家!

在方法randomprint中,完全删除for循环,但保留它的一行正文,它将按预期工作。

我对您的代码做了一些更改,因为for循环必须中断,所以我们将在您想要的时间中断它,现在我将把时间传递给您的方法,看

public class RandomPrint {
    public static void randomprint(){
        for (int i=0;i<100000000;i++){
            System.out.println((int)(1+Math.random()*10));
        }
    }
    public static void main(String[] args){
        long begain = System.currentTimeMillis();

        long CheckTime = System.currentTimeMillis();
        while(true){
            RandomPrint.randomprint();  //this is the program need to work
            CheckTime = System.currentTimeMillis(); 
            if((CheckTime-begain)>=(10*1000)){
                System.out.println("10 seconds stop!");
                break;
            }
        }
   }    
}
public静态打印(整数秒){
长启动=System.currentTimeMillis();
长端=开始+(秒)*1000;//秒*1000毫秒/秒
对于(int i=0;i=end)中断;
}
}
公共静态void main(字符串[]args){
//3秒后停止我的程序
随机打印(3);
}

把数字3换成10,你就得到了;)

调试时,会发生什么?这些价值观是你所期望的吗?代码的行为与您期望的有什么不同?这就是为什么存在调试器。您的程序似乎按照预期的要求工作(运行10秒,然后停止)。什么不对?在哪里调用randomprint()?你是从另一个线程调用它吗?巨大的for循环和计时器在同一个线程上吗?如果randomprint未返回,则无法检查时间在“while(true){”和“CheckTime=System.currentTimeMillis();”之间是否存在“randomprint.randomprint();”.但10秒后,程序没有停止!好的,没问题,但我不知道如何给你答案,你能告诉我步骤吗?谢谢!我真的很抱歉,我在箭头上点击了太多次,“0”变成了“1”,但很快又变成了“0”。太多了,np=)
public static void randomprint(int seconds){
    long start = System.currentTimeMillis();
    long end = start + (seconds)*1000; //  seconds * 1000 ms/sec
      for (int i = 0;i<100000000;){
        System.out.println((int)(1+Math.random()*10));
        i++;
        if(System.currentTimeMillis() >= end) break;


    }
}

public static void main(String[] args) {

        //Stop my program at 3 seconds
        randomprint(3);

}