[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: while(){} vs do{}while()
waldicom
Приготовьте помидоры, медамы и господа...

Последнее время часто вижу на форуме топики по типу:"do{} while()? ты чееееее, атстой!", человека, которого в лицо не видели, панибратски называют Женькой, попов всемизвестнаяфамилия стала именем нарицательным...

А вот скажите мне, ледис энд джентельменс, неужели конктрукция do{} while(); не имеет права на жЫсть? И какие у НЕГО(!) есть еще конструкции, которые выглядят ужасно и не имеют права на жизнь?




Спустя 30 минут, 6 секунд (26.04.2010 - 18:09) twin написал(а):
Ну для этого нужно изучить это безобразие, а руки не доходят. У меня давно есть задумка сделать диск "по следам Жени Попова". Только нет времени(((
Цитата
неужели конктрукция do{} while(); не имеет права на жЫсть?

Имеет права, конечно. Ровно как и имеет право регулярка для проверки целочисленных значений. И еще много чего, что по идее работает, но тикает как бомба с замедленным действием.

А этот самый знаменитый его момент с мета_д и мета_к я вот тут расписал.

Спустя 9 минут, 9 секунд (26.04.2010 - 18:18) sergeiss написал(а):
Цитата (waldicom @ 26.04.2010 - 18:39)
неужели конктрукция do{} while(); не имеет права на жЫсть

Этого никто не говорил. Но не в том применении, как это делается у этого Женька!

PS. twin шустрый, опредил smile.gif

Спустя 4 минуты, 12 секунд (26.04.2010 - 18:23) Семён написал(а):
Говорят скорее всего те, кто не знает для чего применять.
do...while выполнять проход 1 раз, а потом повтор пока значение не будет TRUE
for - выполнять указанное число раз
foreach - проходить по каждому элементу массива.

Спустя 20 минут, 42 секунды (26.04.2010 - 18:43) twin написал(а):
do...while это вообще штука крайне редкая. Лично я встречал только теоретически. Вот допустим преобразование числа в строку, тут никак без него (если конечно settype() не юзать biggrin.gif )
    $number = time();  
$string = '';
$radix = 10;
$digits = "0123456789ABCDEF";

var_dump($number);

do
{
$digit = $number % $radix;
$number = ($number - $digit) / $radix;
$string = $digits[$digit] . $string;
}
while($number);

var_dump($string);


А когда разбирается простой массив, на кой оно? Только неприятности, если пустая таблица.

Спустя 32 минуты, 31 секунда (26.04.2010 - 19:16) sergeiss написал(а):
twin :

А этот цикл, do-while... Ну, вот у меня есть в одном месте поиск решения методом половинного деления. Там по-любому должна быть как минимум одна итерация цикла. Там что do-while подходит.
В другом месте. Надо зайти в цикл, проверить несколько условий. Которые ну никак в цикл while не влезают. Уж больно "ветвистые" условия... Поэтому сначала захожу в цикл, а потом, если условия не выполняются, выхожу из него по break. Иначе - прохожу весь цикл до конца.

Спустя 1 час, 44 минуты, 48 секунд (26.04.2010 - 21:01) Nikitian написал(а):
Странный вопрос. Переведя его на человеко-понятный язык можно услышать следующее.
Цитата
Копаю огород ломом и всегда слышу: "Ты чёёёё, атстой! Возьми лопату!" - так неужели лом не имеет права на жизнь? А как же тогда зимой лёд долбить?


То, как применяется do-while для перебора полученных данных из бд - это неправильно (хотя иногда можно, точно осознавая выбор). do-while при правильном подходе помогает не дублировать код, при неправильном - способствует дублированию smile.gif)

Самый свежий пример использования do-while: надо сделать продление аукциона на 1 день минимум, но так, чтобы новая дата не выпала на выходной или праздничный день. Что может быть проще?

//Код не цитирую, а упрощённо разумеется
do{
$deadline=strtotime('+1 day',$deadline);
}while(is_weekend($deadilne));

Попробуйте сделать другим способом, чтобы было читабельно и коротко.

Спустя 1 час, 31 минута, 53 секунды (26.04.2010 - 22:32) waldicom написал(а):
Цитата (Nikitian @ 26.04.2010 - 20:01)
Странный вопрос. Переведя его на человеко-понятный язык можно услышать следующее....

Эммм... Вообще-то тема задумавалась как насквозь флудерастическая. Цель получить ответ на вопрос о праве на существование конктрукции do{...}while() не ставилась.
Я думал это поймут все...

Спустя 14 часов, 22 минуты, 29 секунд (27.04.2010 - 12:55) John_761 написал(а):
Попов гуру...
>>"Я Учился Создавать Профессиональные PHP Сайты 5 Долгих Лет"
У него колоссальный опыт, как вы не понимаете его идей ?! wink.gif


_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.