Цикл for

Статус
В этой теме нельзя размещать новые ответы.

Вурдалак

Продвинутый новичок
с удовольствием выслушаю твой пример использования цикла со встроенным счетчиком не для перебора массива в пхп.
Ты что, перегрелся, да? Возьми пример из этого топика с лесенкой из звездочек. Или вот, из текущего проекта:
PHP:
for ($i = 0, $mask = 0; $i < strlen($s); $i++) {
    if ($i % 8 == 0)
        $mask = ord($s[$i]);
    else
        $data .= chr(ord($s[$i]) - !($mask & (1 << $i % 8)));
}
 

Absinthe

жожо
Учитывая то, что для перебора правильнее использовать foreach, а не for, данное сообщение смотрится не странно, а глупо.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
а вот еще задачка, кто решит ее с помощью foreach ? а из базы как вы читаете если это не while?
foreach очень удобная штучка но она заменяемая а while уже сложнее заменить...
Причем тут while вообще?
 

WMix

герр M:)ller
Партнер клуба
for это тотже while только с счетчиком...
 

USA

Новичок
пирамида по такому коду строится ? только как пробелы поставить ( Или я как всегда вообще не в том направлении )
PHP:
<?php
header('Content-Type: text/plain');
$long = 9;
for($i=1; $i<$long; $i=$i+2) {
   echo str_repeat('*',$i)."\n";
}
?>
а ромбик типу так. Я наверно ошибаюсь, но почему то я подумал именно так =)
PHP:
<?php
header('Content-Type: text/plain');
$long = 9;
for($i=1; $i<$long; $i=$i+2) {
   echo str_repeat('*',$i)."\n";
}
    $long = 0;
for($i=9; $i>$long; $i=$i-2) {
   echo str_repeat('*',$i)."\n";
}
?>
 

keltanas

marty cats
Цикл for действительно не нужен ;)
PHP:
<?php
function a( $c = 10 ) {
    static $i = 1;
    return $c < $i ? "" : str_repeat("*", $i++)."\n".a($c);
}

print a(15);
 

WMix

герр M:)ller
Партнер клуба
пирамида по такому коду строится ? только как пробелы поставить
да неплохо (пол задания готово), пробелы рисуются так echo " "; echo str_repeat(' ',$i)... долепишь? с ромбом 2 цикла можно... конечно решение... а слабо в один? там проблемка если четное число... как решение на четное число вершины толщиной в 2 звездочки...
Код:
   **
  ****
 ******
********
********
 ******
  ****
   **
или если сложно всегда наибольшее нечетное число
 

fixxxer

К.О.
Партнер клуба
keltanas
Ну это понятно, что для полноты по Тьюрингу циклы как таковые вообще не нужны, достаточно рекурсии. Открыл Америку. :D
 

Absinthe

жожо
а из базы как вы читаете если это не while?
Как раз для этой задачи foreach гораздо больше подходит, чем while.
Потому что у тебя после запроса к базе обычно набор объектов, которые надо обойти.

для полноты по Тьюрингу циклы как таковые вообще не нужны, достаточно рекурсии
И функции/рекурсия не нужны. Достаточно goto.
 

WMix

герр M:)ller
Партнер клуба
Absinthe
раньше копай... откуда взялся этот набор объектов? while ($row = mysql_fetch_object($result))... вспоминай уже... for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--)
 

USA

Новичок
пробелы рисуются так echo " "; echo str_repeat(' ',$i)... долепишь?

не а =( шось вообще не выходит красиво нарисовать (
 

USA

Новичок
1, 3, 5 .. ты сделал,.. а для пробелов такая ... n-1, n-2...2,1,0
Это для меня щас как разгадывать тесты на iq ) 1 3 5 это как я понял кол моих звездочек. 2,1,0 - это наверно два пробела от первой строки моих звездочек, один пробел второй строки моих звездочек, 0 пробелов от последней строки. А вот это n-1, n-2., что то мысля не приходит =) куда их и зачем они
 

WMix

герр M:)ller
Партнер клуба
если высота это n
в первой строке n-1 пробелов во 2й n-2.. и так далее.... (математику проходил в школе?)
 

USA

Новичок
если высота это n
в первой строке n-1 пробелов во 2й n-2.. и так далее.... (математику проходил в школе?)
конечно ) решал контроши за 30 мин =) Но там было проще: прошли 5 задач на подготовку к контрольной и остается только на контрольной свои значения в задачки подставить и подсчитать =)
 

WMix

герр M:)ller
Партнер клуба
ну справишься?,.. твоя проблема, что ты сменил шаг на каждый 2й " for($i=1; $i<$long; $i=$i+2) ", былоб как в первой задаче, то формула пробелов очевидна!...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху