2017-10-19 3 views
-1

これはより大きなコードの一部です。このコード部分で条件が満たされない場合、コードを待つかスリープ状態にするその条件が満たされるまで数分を待ってから続行してください。条件が満たされるまでコードの一部を数分間スリープさせます

ゲームのオッズは常に変化し、オッズが低いか高いことが起こり、条件を満たさない場合や、後で条件を満たす別のチームを追加する可能性があります。だから、コードを45分待ってからもう一度チェックしてほしい。条件が満たされない場合は、再度待機しますが、条件が満たされるまで実行されます。私はちょうどここで立ち往生しています。

if(date_time[0] >= day && date_time[1] >= month && gameCurr_time_comp1 >= 10 && new_left_odds[0] >= 2.00 && new_left_odds[0] <= 2.4)  { 
    System.out.println("PLACE TEAM ON INDEX 0 IF ALL CONDITIONS ARE MET:" + "\n" + matches[0] + "\n");  

    currentTeam = matches[0]; 
    currentGame = matches2[0]; 
     } 

    else if(date_time[0] >= day && date_time[1] >= month && gameCurr_time_comp1 >= 10 && new_right_odds[0] >= 2.00 && new_right_odds[0] <= 2.4) { 
    System.out.println("PLACE TEAM ON INDEX 1 IF ALL CONDITIONS ARE MET:" + "\n" + matches[1] + "\n");  

    currentTeam = matches[1]; 
    currentGame = matches2[0]; 
    } 

    else if(date_time[4] >= day && date_time[5] >= month && gameCurr_time_comp2 >= 10 && new_left_odds[1] >= 2.00 && new_left_odds[1] <= 2.4) { 
    System.out.println("PLACE TEAM ON INDEX 2 IF ALL CONDITIONS ARE MET:" + "\n" + matches[2] + "\n");  

    currentTeam = matches[2]; 
    currentGame = matches2[1]; 
    } 

    else if(date_time[4] >= day && date_time[5] >= month && gameCurr_time_comp2 >= 10 && new_right_odds[1] >= 2.00 && new_right_odds[1] <= 2.4) { 
    System.out.println("PLACE TEAM ON INDEX 3 IF ALL CONDITIONS ARE MET:" + "\n" + matches[3] + "\n");  

    currentTeam = matches[3]; 
    currentGame = matches2[1]; 
    } 

    else if(date_time[8] >= day && date_time[9] >= month && gameCurr_time_comp3 >= 10 && new_left_odds[2] >= 2.00 && new_left_odds[2] <= 2.4) { 
    System.out.println("PLACE TEAM ON INDEX 4 IF ALL CONDITIONS ARE MET:" + "\n" + matches[4] + "\n");  

    currentTeam = matches[4]; 
    currentGame = matches2[2]; 
    } 

    else if(date_time[8] >= day && date_time[9] >= month && gameCurr_time_comp3 >= 10 && new_right_odds[2] >= 2.00 && new_right_odds[2] <= 2.4) { 
    System.out.println("PLACE TEAM ON INDEX 5 IF ALL CONDITIONS ARE MET:" + "\n" + matches[5] + "\n");  

    currentTeam = matches[5]; 
    currentGame = matches2[2]; 
    } 

    else{ 
    System.out.println("DON\'T PLACE ANY TEAM OR GAME" + "\n"); 
    } 
+1

ようこそ。あなたが他の人にあなたを助けてもらうためには、簡単にしてください。このガイドに従って良い質問を書いてください: –

+0

あなたがそれにいる間:おそらくあなたはコードの添え字を固定することを検討したい –

+0

私は次回私はあなたに感謝します。 – buraz

答えて

1

あなたのコードは、あなたが求める簡単な質問には余裕があります。 私のコードをどこに挿入すればいいのかわかりません。その後、

ので、代わりに、ここでは非常に最小限の方法であなたの問題を解決する方法を

int a = 0; 
int b = 100; 
while(a < b) 
{ 
    try{ 
     Thread.sleep(1000); 
    }catch(Exception ex){} 
    a = 1; // substitute some of your logic 
    b = 0; // substitute some of your logic 
} 

である。このプログラムは、概念的条件a < b

に睡眠のこのアプローチを持っているために、2つの変数を待ち、再評価はアクティブポーリングと呼ばれます。これは通常、反(デザイン)パターンとしてリストされています。このようなリソース(スレッド)を無駄にするべきではありません。

あなたの値を計算するプロセスが他の人に「ちょっと、私の値が更新されました。興味があればチェックしてください」というアプローチを考えてみましょう。

関連する問題