Броене от число до число.

skatebord

Registered
Здравейте,
Пъво да ви кажа "Весели Празници"!

Та да си дойдем на думата... имам едно число ($min=0; ) и друго ($max=100; ), как да преброя колко числа има от $min до $max? Благодаря :)
 
Fill,
в примера, к си дал променливата $count ти е ненужна (освен това липсва един стринг ;) ), защото още в началото на операцията имаш основните стойности в променливитие $max и $min.
По-удобно е изваждане (1 операция извън фор-цикъла), отколкото повтаряне на унарния оператор за събиране:

$kount=$min-$max;

Скобите при принтиране ан низ с echo() също можеш да ги махнеш - достатъчни са двойните кавички. Пести време и намалява риска от грешка.

Весела коледа на всички!
 
Аз бих използвал функцията range():

$min = 17;
$max = 25;

$ar = range($min, $max);
foreach ($ar as $l) echo $l.", ";

echo "<br>\nОбщия брой числа е: ".count($ar);
 
Само любопитство: какво печелиш, ако ги обърнеш в масив, к отново обхождаш?
Без да гадая предполагам, че човекът ще създава списък или падащо меню. Струва ми се, че Фор-цикъла е по-удобен и в двата случая :)
 
sizif каза:
Само любопитство: какво печелиш, ако ги обърнеш в масив, к отново обхождаш?
Без да гадая предполагам, че човекът ще създава списък или падащо меню. Струва ми се, че Фор-цикъла е по-удобен и в двата случая :)
@sizif, предполагам, че въпросът беше насочен към мен.
Няма никакво значение дали използваш for() или foreach() за да изградиш някакъв цикъл, та ако ще да е и за да изкарваш една каруца списъци :).
В случая се печели:
1. Време - потърси в google.com за "For vs Foreach". Foreach не включва броене, освен ако не сложиш:
Код:
foreash ($array as $key => $value)
Но и в този случай бенчмарковете са категорични, че времето за изпълнение на foreach цикъл е наполовина спрямо for.
2. Прегледност на кодa
3. Голяма маневреност - можеш да изкарваш random елемент, можеш да сортираш, възможност за реверсия и т.н.
В крайна сметка е въпрос на опит и предпочитания на кодера.
 
PhrozenCrew,

от предимствата, к изброяваш само номер 1 - бързината, би могло да бъде аргумент, а за нея не съм подготвен и не мога да коментирам.

Когато говориш за фор, не визираш единствено "стандартната" му конструкция, нали? ;)

for ($i=$nachalo; $i<$stop; $i++)

Прегледността е субективна, а твърдението за "маневреността" важи с пълна сила за фор-цикъла - разполагаш си условията в главата или тялото и можеш да правиш куп неща, които с форейч винаги ще изискват допълнителни операции... И не можеш да ме убедиш, че форейч позволява по-добро управление на итерацията от фор... Не забравяй, че фор не само брои, а когато го прави стъпката може да бъде в произволни граници.

Ако говорим за обхождане на масив пак ще използвам фор... В случай, че е асоциативен, ще си послужа с уайл ;)
Когато става дума за масив и/или броене, ще се съглася с теб, че е въпрос на предпочитания...

Колкото до случайния елемент няма да използвам цикъл, а риверсията отново касае масив и има поне 2 функции за обръщане, специфични за масиви...

Поздрави!

ПП: skatebord, извинявай, че май ти оспамихме темата :)
Надявам се, че си решил проблема!
 
Благодаря на всички! Но най-вече на PhrozenCrew и sizif, много ми помогнахте с дългите си обяснения, все пак целта ми е не да използвам готови кодове (е вярно че го правя), а да разбера смисъла, благодаря и на 2мата :wink:
п.п. Как да разделя точката бе... да я... в точката. Давам я на sizif, моля не се сърдете :roll:

п.п.2. ВЕСЕЛИ ПРАЗНИЦИ! :?:
 

Back
Горе