Как выполнить что-то в цикле только 1 раз
От: Аноним  
Дата: 13.11.03 15:45
Оценка:
Пример


 for( <произвольные условия цикла>)
 {
     .............

     if( < условие_истинно_только_один_раз_per_loop > )
     {
        doSomthing();
     }

     .............
 }



Конечно можно перед циклом переменную объявить — это понятно.
А еще какой-нибудь способ есть ?
Re: Как выполнить что-то в цикле только 1 раз
От: George Seryakov Россия  
Дата: 13.11.03 15:51
Оценка:
Здравствуйте, Аноним, Вы писали:


for( int i = 0, doSomthing(); i < N; i++) {
     .............
}
GS
Re[2]: Как выполнить что-то в цикле только 1 раз
От: Аноним  
Дата: 13.11.03 15:59
Оценка:
Здравствуйте, George Seryakov, Вы писали:

GS>Здравствуйте, Аноним, Вы писали:


GS>

GS>for( int i = 0, doSomthing(); i < N; i++) {
GS>     .............
GS>}
GS>


По некоторым соображениям я не могу засунуть doSomthing() в тело цикла т.к. иногда это не один вызов, а целый блок { ... }
Re[2]: Как выполнить что-то в цикле только 1 раз
От: Sergey Россия  
Дата: 13.11.03 16:19
Оценка:
Hello, George!
You wrote on Thu, 13 Nov 2003 15:51:03 GMT:

GS>

 GS> for( int i = 0, doSomthing(); i < N; i++) {
 GS>      .............
 GS> }
 GS>


Это не эквивалентно выполнению doSomthing() в теле цикла, поскольку doSomthing() вызовется до проверки условия i < N

Best regards,
Sergey.
Posted via RSDN NNTP Server 1.8 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re: Как выполнить что-то в цикле только 1 раз
От: Анатолий Широков СССР  
Дата: 13.11.03 16:37
Оценка: :)
А>А еще какой-нибудь способ есть ?

break не подойдет?
Re: Как выполнить что-то в цикле только 1 раз
От: shura_mam  
Дата: 13.11.03 21:22
Оценка:
Здравствуйте, Аноним, Вы писали:

А> Пример


А>

А> for( <произвольные условия цикла>)
А> {
А>     .............

А>     if( < условие_истинно_только_один_раз_per_loop > )
А>     {
А>        doSomthing();
А>     }

А>     .............
А> }

А>



А>Конечно можно перед циклом переменную объявить — это понятно.

А>А еще какой-нибудь способ есть ?



 if ( <произвольные условия цикла> )
 { 
    doSomthing();

    do
    {
      //next;
    } while( <произвольные условия цикла> )
 }
Re[3]: Как выполнить что-то в цикле только 1 раз
От: m.a.g. Мальта http://dottedmag.net/
Дата: 14.11.03 07:08
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>По некоторым соображениям я не могу засунуть doSomthing() в тело цикла т.к. иногда это не один вызов, а целый блок { ... }


Выдели в отдельную функциию и засунь.
... << RSDN@Home 1.1 beta 2 >>
Re[2]: Как выполнить что-то в цикле только 1 раз
От: Аноним  
Дата: 14.11.03 07:46
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

А>>А еще какой-нибудь способ есть ?


АШ>break не подойдет?


break вывалится из цикла совсем — это не то т.к. остальные действия в цикле надо N раз повторять.
Re[2]: Как выполнить что-то в цикле только 1 раз
От: Аноним  
Дата: 14.11.03 07:51
Оценка:
Здравствуйте, shura_mam, Вы писали:

2 раза условия цикла проверять — не есть гут т.к. они могут быть достаточно сложными.


_>
_> if ( <произвольные условия цикла> )
_> { 
_>    doSomthing();

_>    do
_>    {
_>      //next;
_>    } while( <произвольные условия цикла> )
_> }

_>
Re: Как выполнить что-то в цикле только 1 раз
От: Аноним  
Дата: 14.11.03 07:59
Оценка: -1
Здравствуйте, Аноним, Вы писали:

А> Пример


А>

А> for( <произвольные условия цикла>)
А> {
А>     .............

А>     if( < условие_истинно_только_один_раз_per_loop > )
А>     {
А>        doSomthing();
А>     }

А>     .............
А> }

А>



А>Конечно можно перед циклом переменную объявить — это понятно.

А>А еще какой-нибудь способ есть ?

Придумал вот что.


for( <произвольные условия цикла>)
{
     .............

     if( static bool bOnce = true; )
    {
        doSomthing();
        bOnce = false;
    }

    .............
}


Однако при следующем вызове этой же функции bOnce == false, и if не выполнится (((
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.