2017-04-09 4 views
-4
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; 
      } 
     } 
    }  
} 

これは私のJavaコードで、プログラムは "randomprint()"ですが、10秒後にプログラムは停止しません!(プログラムは常に動作します)。 10秒間働いてもプログラムが機能しなくなるのを助けてくれますか?ありがとうございました!プログラムの作業を10秒にするには? 10秒後にプログラムが停止する

+0

は、何が起こりますか?あなたが期待している価値ですか?具体的には、コードの動作は期待したものと異なりますか? – David

+0

これはデバッガが存在する理由です。 – OldProgrammer

+0

あなたのプログラムは、期待された欲求(10秒間実行されてから停止する)に従って動作するようです。何が正しくないのですか? – VHS

答えて

0

ランダム・メソッドでは、for-loopを完全に削除しますが、1行のままにしておくと、期待どおりに動作します。

+0

よろしくお願いします。私はそれを作った!よろしくお願いします。 –

0

意志ループのために、我々はそれを破るために持っているので、我々は今、この時間は私が

を見て、あなたの方法に時間を渡します、あなたが望んでいた時にそれを破るだろうとまあ私は、あなたのコードに変更を加え
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); 

} 

変更があなたが得た10の番号3および;)あなたがデバッグする場合

+0

!私はそれを作った! –

+0

うまくいけば、いくつかの点を教えていただけますか? ty – Yussef

+0

OK、問題ありませんが、あなたにポイントを与える方法を知っています、あなたは私にステップを示すことができますか?ありがとうございました! –

関連する問題