{
От: Varavva  
Дата: 18.09.16 12:33
Оценка: 1 (1) +15 -1
Кто как ставит { для цикла for?
В смысле в этой же строке или отдельно на следующей?

Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.
Re: {
От: andyp  
Дата: 18.09.16 12:49
Оценка: +7 -6 :))
Здравствуйте, Varavva, Вы писали:

V>Кто как ставит { для цикла for?

V>В смысле в этой же строке или отдельно на следующей?

V>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.


Всеми разделяется убеждение, что вареные яйца при
употреблении их в пищу испокон веков разбивались с тупого конца; но дед
нынешнего императора, будучи ребенком, порезал себе палец за завтраком,
разбивая яйцо означенным древним способом. Тогда император, отец ребенка,
обнародовал указ, предписывающий всем его подданным под страхом строгого
наказания разбивать яйца с острого конца. Этот закон до такой степени
озлобил население, что, по словам наших летописей, был причиной шести
восстаний, во время которых один император потерял жизнь, а другой —
корону

Re: {
От: vsb Казахстан  
Дата: 18.09.16 13:00
Оценка: +5 -4
Здравствуйте, Varavva, Вы писали:

V>Кто как ставит { для цикла for?

V>В смысле в этой же строке или отдельно на следующей?

V>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.


Всегда ставлю на этой же строке. Сокращает число строк, больше помещается на экран. Ничего смешного не вижу и каких-то преимуществ ставить { на отдельной строке тоже не вижу.
Re: {
От: Evgeny.Panasyuk Россия  
Дата: 18.09.16 13:00
Оценка: +5
Здравствуйте, Varavva, Вы писали:

V>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке.


Это называется egyptian brackets


V>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке.


Я предпочитаю на отдельных:
for(auto x : xs)
{
   // ...
}

Но в некоторых случаях предпочитаю вот так:
for_each(xs, (auto x) {
    // ...
});
Иначе было бы так:
for_each(xs, (auto x)
{
    // ...
});
что по сути всё равно является отступлением от принципа, и если следовать ему полностью то было бы так:
for_each
(
    xs, (auto x)
    {
        // ...
    }
);
что уж слишком многословно по сравнению с первым вариантом.

V>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке.


Это лишь дело привычки.
Re: {
От: alpha21264 СССР  
Дата: 18.09.16 13:05
Оценка: +1 -2 :))) :))) :)
Здравствуйте, Varavva, Вы писали:

V>Кто как ставит { для цикла for?

V>В смысле в этой же строке или отдельно на следующей?

Я ставлю на следующей строке — чтобы открывающая и закрывающая скобка стояли друг над другом.

for( int i=0 ; i<10 ; i++ )
{  printf("сам дурак!\n"); // <-- скобка и первый оператор на одной строке
}

Течёт вода Кубань-реки куда велят большевики.
Re: {
От: утпутуук  
Дата: 18.09.16 13:08
Оценка: +1 -1 :))) :)))
Здравствуйте, Varavva, Вы писали:

V>Кто как ставит { для цикла for?

V>В смысле в этой же строке или отдельно на следующей?

Отдельно
for(unsigned i=0; i!=size; ++i)
   {
    if (data[i]>tres)
       {
        doSomething(i, data[i]);
       }
    else
       {
        doAnother(i, data[i]);
       }
   }
Re[2]: {
От: Evgeny.Panasyuk Россия  
Дата: 18.09.16 13:10
Оценка: +9
Здравствуйте, alpha21264, Вы писали:

A>Я ставлю на следующей строке — чтобы открывающая и закрывающая скобка стояли друг над другом.

A>
A>for( int i=0 ; i<10 ; i++ )
A>{  printf("сам дурак!\n"); // <-- скобка и первый оператор на одной строке
A>}
A>


В этом варианте неудобно менять строки местами, копировать и т.п. — так как мешается первая скобка.
Re: {
От: b0r3d0m  
Дата: 18.09.16 13:25
Оценка:
Зависит от языка. В C++ ставлю на отдельной строчке, в JS -- на той же.

Меня больше бесит отсутствие в большинстве Lisp'ов мега-закрывающей скобки. А то в некоторых (например, в Clojure) ещё и на одной строчке принято закрывать все накопившиеся скобки. Потом сиди и разбирай, куда тебе свою впихнуть надо, или откуда убрать ненужную:

))))}))]))
Re[2]: {
От: Evgeny.Panasyuk Россия  
Дата: 18.09.16 13:42
Оценка: 1 (1) +1
Здравствуйте, b0r3d0m, Вы писали:

B>Меня больше бесит отсутствие в большинстве Lisp'ов мега-закрывающей скобки. А то в некоторых (например, в Clojure) ещё и на одной строчке принято закрывать все накопившиеся скобки. Потом сиди и разбирай, куда тебе свою впихнуть надо, или откуда убрать ненужную:


Эту проблему помогает решить режим редактирования в котором манипулирование совершается не на уровне отдельных символов скобок и т.п., а на уровне узлов синтаксического дерева:
https://www.youtube.com/watch?v=D6h5dFyyUX0
Re: {
От: borya_ilin  
Дата: 18.09.16 14:05
Оценка: +5 -4 :))) :))) :))) :))
Здравствуйте, Varavva, Вы писали:

V>Кто как ставит { для цикла for?


{ на той же строчке что и for, конечно же. Это же единственный правильный стиль скобок
Отредактировано 18.09.2016 14:39 borya_ilin . Предыдущая версия .
Re: {
От: Privalov  
Дата: 18.09.16 14:08
Оценка:
Здравствуйте, Varavva, Вы писали:

V>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.


Переходи на Фортран, и этот вопрос перестанет тебя волновать сразу и на всю жизнь.
Re: {
От: SaprXM СССР  
Дата: 18.09.16 14:20
Оценка: -6 :)
V>Кто как ставит { для цикла for?
V>В смысле в этой же строке или отдельно на следующей?

V>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.


пишу часто на той же строке, если и закрывающая скобка тоже на этой же строке (то есть внутри 1-2, максимум 3 стэйтмента)

ради экономии строк и объектов внимания

for( int i=0; i<50; i++ ) { if( i%2 == 0 ) Console.WriteLine("Гляди-ка, чётное: "+i); }

// или так чаще:
for( int i=0; i<50; i++ ) { Console.WriteLine( (i%2==0 ? "Чётное" : "Нечётное") + ": " + i); }
Властитель слабый и лукавый,
Плешивый щеголь, враг труда,
Нечаянно пригретый славой,
Над нами царствовал тогда.... (А.С. Пушкин ? )
Отредактировано 18.09.2016 15:10 Министр Промышленности из Minecraft'а . Предыдущая версия . Еще …
Отредактировано 18.09.2016 14:24 Министр Промышленности из Minecraft'а . Предыдущая версия .
Re[2]: {
От: b0r3d0m  
Дата: 18.09.16 14:24
Оценка:
P>Переходи на Фортран, и этот вопрос перестанет тебя волновать сразу и на всю жизнь.
Как там, в 1980?
Re[2]: {
От: borya_ilin  
Дата: 18.09.16 14:39
Оценка:
https://en.wikipedia.org/wiki/Indent_style#Variant:_1TBS_.28OTBS.29
Re[2]: {
От: T4r4sB Россия  
Дата: 18.09.16 15:21
Оценка: +14 :))) :))
Здравствуйте, утпутуук, Вы писали:

У>Здравствуйте, Varavva, Вы писали:


V>>Кто как ставит { для цикла for?

V>>В смысле в этой же строке или отдельно на следующей?

У>Отдельно

У>
У>for(unsigned i=0; i!=size; ++i)
У>   {
У>    if (data[i]>tres)
У>       {
У>        doSomething(i, data[i]);
У>       }
У>    else
У>       {
У>        doAnother(i, data[i]);
У>       }
У>   }
У>


Извини, но у тебя блевотный стиль. Я переживу и скобки отдельно, и скобки на старой строке, но не это.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re: {
От: T4r4sB Россия  
Дата: 18.09.16 15:25
Оценка: :)
Здравствуйте, Varavva, Вы писали:

V>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.


А вообще от языка зависит. Если операторные скобки — это еле видимые фигурные скобочки, то приходится делать лишний перенос и ставить одну на другой. Потому что иначе ну в натуре не видно, где блок начинает и кончается. В языках, где блок завершается жирным словом end (Паскалоиды, Луя), нет необходимости в переносе. Сразу издалека видна пара if-end, или for-end.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[3]: {
От: утпутуук  
Дата: 18.09.16 15:31
Оценка:
Здравствуйте, T4r4sB, Вы писали:


TB>Извини, но у тебя блевотный стиль. Я переживу и скобки отдельно, и скобки на старой строке, но не это.


Ну, я ж тебя не заставляю
Re: {
От: fin_81  
Дата: 18.09.16 16:12
Оценка:
Переходи на Переходи на темную сторону силы питон.
Re[2]: {
От: ylem  
Дата: 18.09.16 16:20
Оценка: +4 :))) :)
У>
У>for(unsigned i=0; i!=size; ++i)
У>   {
У>    if (data[i]>tres)
У>       {
У>


Нет, он над нами издевается!
Re[3]: {
От: alpha21264 СССР  
Дата: 18.09.16 16:22
Оценка: :)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, alpha21264, Вы писали:


A>>Я ставлю на следующей строке — чтобы открывающая и закрывающая скобка стояли друг над другом.

A>>
A>>for( int i=0 ; i<10 ; i++ )
A>>{  printf("сам дурак!\n"); // <-- скобка и первый оператор на одной строке
A>>}
A>>


EP>В этом варианте неудобно менять строки местами, копировать и т.п. — так как мешается первая скобка.


Я знаю. Но программы гораздо чаще читаются, чем пишутся.

Течёт вода Кубань-реки куда велят большевики.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.