2013-07-27 3 views
2

Каков наилучший способ проверить, сколько раз функция возвращала значение последовательно? Например, выполнение этой функции в цикле:проверить, сколько раз функция возвращает значение последовательно

static bool F (int i) { 
if (i>1) return true; 

return false; 
} 

Теперь

if (function return true consecutively for 10 times) {Do something} 
else {} 

Я делал это путем добавления значения в список, а затем проверить содержимое списка после этого, но я хотел бы знать, что было бы самым профессиональным способом сделать это.

Таким образом, программа требует очень много времени, чтобы ответить.

+0

Если вызвать метод один раз, почему бы ему вернуть 'true' десять раз? Как вы это называете, в цикле? –

+0

Да, конечно, он будет использоваться в цикле – Transcendent

+0

добавьте результат в список, а затем проверьте, совпадает ли последний результат с предыдущим результатом. – Sayse

ответ

3

Вы должны считать это:

int trueCount = 0; 
bool wasTrue = false; 
for(int i=0; i<100000; i++) 
{ 
    wasTrue = F(i); 
    if (wasTrue) 
     trueCount++; 
    else 
     trueCount = 0; 
    if(trueCount == 10) 
     ;//Do Something 
    else 
     ;// Do something else 
} 
+0

Это, похоже, работает намного быстрее, чем мое собственное решение. Большое вам спасибо за вашу большую помощь. Тим :) Я приму этот ответ – Transcendent

Смежные вопросы