Имя: Пароль:
LIFE
Жизнь прекрасна
OFF: Что скажете про такой кусок кода?
,
0 poi
 
10.08.13
16:15
...
Пока Истина Цикл
...
Если что-то Тогда
Прервать;
КонецЕсли;
...
КонецЦикла;
...
1 Aleksey
 
10.08.13
16:16
код как код
2 Gantosha
 
10.08.13
16:28
гениально ...
человек не хотел что бы праздник прекращался )
3 КонецЦикла
 
10.08.13
16:35
С какой целью интересуетесь?
4 Фокусник
 
10.08.13
16:35
ИМХО, аналог Перейти. Иногда имеет право на существование :)
5 Aleksey
 
10.08.13
16:46
(2) Цикл то конечный, зацикливания нет

(4) А причем тут перейти?

Например опрашиваем какое-то устройство, если оно не готово опрашиваем еше раз
6 megabax
 
10.08.13
16:53
Нормальный код. Не всегда удобно все условия в "пока" всовывать
7 Фокусник
 
10.08.13
16:57
(5) "А причем тут перейти? "
При том, что перейти похоже действует, тоже безусловный переход, как и у


Пока Истина Цикл
КонецЦикла;


;)
8 Поросенок Петр
 
10.08.13
17:01
Ни разу в разумной жизни не пришлось к такому прибегнуть.  
Значит г***код.
9 Aleksey
 
10.08.13
17:09
(8) вопросов нет , осталось убедить писателей типовых - что их код г***код, потому что какой то поросёнок ни разу в жизни так не писал

БП 2.0
Пока Истина Цикл - найдено 840


первый же пример

Если ИспользоватьСобытияПриФормированииОтчета Тогда
            //Основной цикл вывода отчета
            Пока Истина Цикл
                
                //Получим следующий элемент результата компоновки
                ЭлементРезультата = ПроцессорКомпоновки.Следующий();
                
                Если ЭлементРезультата = Неопределено Тогда
                    //Следующий элемент не получен - заканчиваем цикл вывода
                    Прервать;
                Иначе
                    
                    Отказ = Ложь;
                    
                    Попытка
                        ОтчетОбъект.ПередВыводомЭлементаРезультата(МакетКомпоновки, ДанныеРасшифровки, ЭлементРезультата, Отказ);
                    Исключение
                    КонецПопытки;
                    
                    Если Не Отказ Тогда
                        //Элемент получен - выведем его при помощи процессора вывода
                        ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
                    КонецЕсли;    
                КонецЕсли;
            КонецЦикла;
            
            //Завершение вывода отчета
            ПроцессорВывода.ЗакончитьВывод();
        Иначе
            ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
        КонецЕсли;
10 Aleksey
 
10.08.13
17:10
Это из ОМ КонтролируемыеСделки Процедура ВывестиОтчет
11 Aleksey
 
10.08.13
17:11
или
Функция ЗаменитьНедопустимыеСимволыXML(Знач Текст, СимволЗамены = " ") Экспорт
    
#Если НЕ ВебКлиент Тогда
    ПозицияНачала = 1;
    Пока Истина Цикл
        Позиция = НайтиНедопустимыеСимволыXML(Текст, ПозицияНачала);
        Если Позиция = 0 Тогда
            Прервать;
        КонецЕсли;
        Если Позиция > 1 Тогда
            НедопустимыйСимвол = Сред(Текст, Позиция - 1, 1);
            Если НайтиНедопустимыеСимволыXML(НедопустимыйСимвол) > 0 Тогда
                Текст = СтрЗаменить(Текст, НедопустимыйСимвол, СимволЗамены);
            КонецЕсли;
        КонецЕсли;
        НедопустимыйСимвол = Сред(Текст, Позиция, 1);
        Если НайтиНедопустимыеСимволыXML(НедопустимыйСимвол) > 0 Тогда
            Текст = СтрЗаменить(Текст, НедопустимыйСимвол, СимволЗамены);
        КонецЕсли;
        ПозицияНачала = Позиция + 1;
    КонецЦикла;
#КонецЕсли

    Возврат Текст;
КонецФункции
12 Aleksey
 
10.08.13
17:12
или в обмене данными

        Пока Истина Цикл
            Индекс = МассивУзлов.Найти(НаборЗаписей.ОбменДанными.Отправитель);
            Если Индекс = Неопределено Тогда
                Прервать;
            КонецЕсли;
            МассивУзлов.Удалить(Индекс);
        КонецЦикла;
13 Wasya
 
10.08.13
17:20
Ну нет в 1С конструкции
repeat
until
14 Сияющий Асинхраль
 
10.08.13
17:22
Использую такой код, например, при чтении эксель файла
15 КонецЦикла
 
10.08.13
17:26
(14) А я писал
Пока КонецФайла <> 1 Цикл
...
...тут где-то КонецФайла = 1
16 Сияющий Асинхраль
 
10.08.13
17:40
Можно и так, но как правило условия выхода из такого цикла сложне одного простого условия, а изредка условий несколько, не люблю внутри пока сложные условия, прервать зачастую проще читается
17 Сияющий Асинхраль
 
10.08.13
17:40
(15) Можно и так, но как правило условия выхода из такого цикла сложне одного простого условия, а изредка условий несколько, не люблю внутри пока сложные условия, прервать зачастую проще читается
18 Эмбеддер
 
10.08.13
18:07
(0) а что скажете насчет такой конструкции в Си?
for(;;)
19 Принт
 
10.08.13
18:33
(0) Код как код, только ты почему-то грустишь..
20 NS
 
10.08.13
20:05
(8) Во многих языках специально добавлен оператор бесконечного цикла.
21 Aleksey
 
10.08.13
20:08
22 Sserj
 
10.08.13
20:19
(15) Неоптимально, лишняя память на лишнюю переменную расходуется :)
23 bolder
 
10.08.13
20:42
(0) Прикажешь отменить бесконечные циклы?)))
И вместе с ними все ОС реального режима?)))))
24 Злопчинский
 
10.08.13
20:46
25 Злопчинский
 
10.08.13
20:46
26 Волчара2010
 
10.08.13
20:59
В УНф такой код встречаетcя
27 Поросенок Петр
 
10.08.13
21:05
(9) Отличный пример г-кода. Про попытку умолчу, код и без неё "блястящ". Если мыслить не сущностями, а строками, бесконечные циклы и гото вполне здравые вещи.

P/S Люди. Типовые пишут обычные люди. Кто пишет хорошо, а кто и лютого качества п-ц.
28 jarett
 
10.08.13
21:06
(15) *А я писал
Пока Конец*
Мы знаем что ты Конец :))) Уже много лет. Но любим мы тебя не за это :)))
29 Широкий
 
10.08.13
21:11
нормальный код
30 DS
 
10.08.13
22:05
Код как код. Совершенно непонятна критика. Наверное в мозгах критиканов что-то не то...
31 Torquader
 
10.08.13
23:29
Ну и что вам не нравится.
Если создатели 1С не подумали о циклах с условием в конце
(Например Do ... Loop While Condition=True) то приходится частенько писать цикл с условием в истину.
А в восьмой версии, к тому же, весь перебор превратили в функции, возвращающие значения. Но 1С не поддерживает вложенных выражений, то есть нельзя написать While(Null!=(Result=Object.RequestNextData)) - приходится сначала получать значение в переменную, а потом его сравнивать с НЕОПРЕДЕЛЕНО.
Хотя, конечно, можно написать функцию-заглушку,которая копирует один параметр в другой и проверяет его на равенство НЕОПРЕДЕЛЕНО, но такой подход ясности коду не добавит.
32 sirsp
 
11.08.13
00:10
(0) Только одно: криво отформатирован!
33 YV
 
11.08.13
02:37
(0) Вполне себе нормальный код. DO ... WHILE можно реализовать таким вот образом.
34 Вуглускр1991
 
11.08.13
10:01
Только если в теле цикла используются вызовы к функциям в реализации которых в ожидании вывода останавливаются потоки,
либо если мы не ждем асинхронного события, а перебираем варианты, один из которых гарантированно прервет цикл.
Если не так - то код опасен. И я бы спросил автора на этот счет, прежде чем принимать у него работу.
35 SalavatUlaev
 
11.08.13
10:10
(0) Ужас. он же не должен работать
Разве эти строки
"..."
не вызывают ошибки ?
36 VladRd
 
11.08.13
10:24
В семерке писали:
Пока 1=1 Цикл
И ничего...
37 2S
 
11.08.13
10:33
код стар как я, открыл Америку блеат
38 Classic
 
11.08.13
10:42
нормальный код.


В

Пока Условие() Цикл
КонецЦикла

тоже можно постоянное  условие втулить и получить бесконечный цикл

А конструкция из (0) - некий аналог паскалевского

repeat
until

Т.е. железного выполнения хотя бы раз
Основная теорема систематики: Новые системы плодят новые проблемы.