Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > вопрос по циклу


Автор: ilya_cska 8.7.2008, 14:03
Есть цикл
Код

foreach ($nodes as $node)
        {
            if ( $page == '1' )
            {
                echo '1';
            }
            else
            {
                echo '2';
            }
            $i++;
        }

Есть какой-нибудь прием в программировании, чтоб если хоть раз встретилось первое условие, то оно больше не проверялось?

Автор: bars80080 8.7.2008, 14:05
нет, даже если ты сделаешь какой-нибудь флаг, тебе всё равно придётся проверять его тем же if-else

Автор: ilya_cska 8.7.2008, 14:08
нет, даже если ты сделаешь какой-нибудь флаг, тебе всё равно придётся проверять его тем же if-else
А как-нибудь по хитрому условие написать? Просто нужная запись может быть первая, а цикл все равно будет проверять это условие.

Автор: bars80080 8.7.2008, 14:24
если тебе нужно остановить выполнение цикла по достижении какой-то записи, то достаточно использовать break;

Код

foreach ($nodes as $node)
        {
            if ( $page == '1' )
            {
                echo '1'; break;
            }
            else
            {
                echo '2';
            }
            $i++;
        }


Автор: Glip 8.7.2008, 14:53
Цитата(bars80080 @  8.7.2008,  14:24 Найти цитируемый пост)
если тебе нужно остановить выполнение цикла по достижении какой-то записи, то достаточно использовать break;

или использовать while или for с нужными условиями

Цитата(ilya_cska @  8.7.2008,  14:08 Найти цитируемый пост)
Просто нужная запись может быть первая, а цикл все равно будет проверять это условие

и что в этом страшного?

Автор: Feldmarschall 8.7.2008, 14:55
Юный оптимизатор - это страшная сила.

Автор: Glip 8.7.2008, 14:57
Feldmarschall,  +1 smile

Автор: Mal Hack 8.7.2008, 15:49
ilya_cska, switch вам нужен.

Автор: Glip 8.7.2008, 16:00
Цитата(Mal Hack @  8.7.2008,  15:49 Найти цитируемый пост)
ilya_cska, switch вам нужен.

можно немного подробнее? как с помощью switch в цикле добиться чтобы условие проверялось только один раз?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)