2016-04-18 17 views
-4

私はレンジを割り当てる必要があるプログレスバーを持っており、そのネストされたforループから計算する必要があります。実際には必要なステップ数?2つのネストされたforループからプログレスバーの範囲を取得する

for (int i = 0; i < i_end; ++i) 
{ 
    for (int j = 0; j < j_end; ++j) 
    { 
     for (int a = 0; a < a_end; ++a) 
     { 
     } 
     for (int b = 0; b < b_end; ++b) 
     { 
     } 
     ... 
     . 
     . 
     . 
    } 
} 
+7

本当に 'i_end * j_end *(a_end + b_end)'を求めていますか? – Zeta

+0

'i_end'、' j_end'、 'a_end'、' b_end'が最大値を知っているかどうか知ることは有益でしょう。あなたのコードが立っているので、4つすべてが潜在的に 'Integer.MAX_VALUE'であり、結果は' 19,807,040,600,895,968,300,706,562,046'になります。 – computerfreaker

+0

@Thereisnothingwecandoまた、それぞれの最も内側のループからプログレスバーを更新することを忘れないでください。 –

答えて

2

toループがネストされている場合は、それぞれの反復回数を掛けて合計数を取得する必要があります。ループが互いの後にある場合、反復の合計数はそれぞれの反復の合計になります。 j_end反復を有するループがi_endにネストされ、そしてa_endb_endとループが同じレベルにあり、j_endにネストされているので、この場合

は、あなたが

i_end * (j_end * (a_end + b_end)) 

で終わります。ループのいずれもcontinue又はbreakと任意の範囲ステッピング(どこ例えばi++)又はショートカット反復を破壊しないいずれかの場合にのみ成立する

注。

関連する問題