4 / 4 / 3
Регистрация: 23.10.2012
Сообщений: 233
|
|
1 | |
Стоит ли использовать тернарный оператор, если всегда есть альтернативы в С ?04.07.2013, 00:55. Показов 8849. Ответов 85
Метки нет (Все метки)
Мне вот интересно , что скажут люди о Тернарном операторе, которые уже на С++ программируют немало.
Насколько он удобен, много ли экономит пространство кода и стоит ли его применять сильно часто или же тернарный оператор у многих не приживается в дальнейшем. Да не спорю придумали его наверное не зря, перед какими то задачи он может и удобен, но мне кажется что его используют мало людей
0
|
04.07.2013, 00:55 | |
Ответы с готовыми решениями:
85
Оператор идентичности - когда стоит использовать? Оператор gets() не хочет выполняться, если перед ним стоит scanf Как узнать есть ли фронтальная камера на устройстве и если есть, то использовать ее? Где стоит использовать bootstrap и стоит ли вообще использовать CSS фреймворки? |
05.07.2013, 13:08 | 41 |
BumerangSP, не, ну про реальные проекты я молчу, там лучше обходиться без рекурсии, по возможности, писать предельно понятный код, знаем. после этого как то скучно стает. а на форуме поразвлекаться самое то да, и в олимпиадных задачках тоже.
0
|
Комп_Оратор)
|
|
05.07.2013, 13:11 | 42 |
При инициализации констант или ссылок в списках и трудно заменить. Читал где-то, не помню где.
При использовании в качестве оператора, а не как выражения, - везде проигрывает логическим операторам во всём кроме размера. Читать его - радость. Но главное, что трудно модифицировать. Не позволяет выбрасывать вразумительные исключения... Не по теме:
2
|
05.07.2013, 13:13 | 43 |
Thinker, да, тут мы как-то в общем говорим, так что можно согласовать на уместности в определенной ситуации
Хотя вот насчет скуки...не знаю, есть еще много очень интересных вещей, которые "не дадут скучать" =) IGPIGP, я специально написал в посте, что это - имхо. Вот кому как, а я постараюсь избегать в своих "творениях" такую конструкцию на невидных местах. По поводу замены: всегда есть способ)
1
|
Комп_Оратор)
|
||||||
05.07.2013, 13:24 | 45 | |||||
не верю, что не точкой с запятой написал.
И у меня. Там строчкой выше видно. А в итоговой оставил старый комент (123 - не заметил)) В условии, - всегда bool (целый). В ветвях типы могут быть разные, и если ожидается более короткий, - переполнение. О приведении значения к bool, как это происходит с логическими выражениями в if например.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
05.07.2013, 13:36 | 47 |
Имхо тернарное имеет смысл сравнение, когда требуется за одно сравнение получить один из трёх результатов: меньше, больше, равно, а кодирование двойной альтернативы с потерей гибкости в языке высокого уровня не уместно, так как отчётливо воняет попыткой добавить в него эзотерики.
1
|
05.07.2013, 13:55 | 50 |
стоит-стоит!!! просто если есть возможность, особенно, в цикле, то лучше без условных операторов. но часто это трудоемко, например, здесь
https://www.cyberforum.ru/post4754520.html кстати, это
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
05.07.2013, 14:27 | 51 |
Не по теме: так название темы в каждом сообщении присутствует с добавкой "Re:". Оттуда и цитировал стандартными средствами форума. Добавлено через 5 минут на самом деле любой цикл содержит условие продолжения, поэтому отсутствие явного if совершенно не говорит о том, что в коде нет условных операторов.
1
|
Комп_Оратор)
|
|
05.07.2013, 15:21 | 53 |
двух: выражение a или выражение b, а предикат в условии можно придумать любой.
Если не использовать вложенные... Не по теме: обфускационный ход конечно:pardon:
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
05.07.2013, 15:37 | 54 |
Ты не понял, речь не о тернарном операторе конкретно в c/c++, а о том, каким должен быть тернарный оператор, чтоб понравиться мне. Имхо должен возвращать один из трёх результатов и быть оператором именно сравнения, а не сложного двоично-альтернативного полуприсваивания.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
05.07.2013, 15:42 | 57 |
ты не понял.
Код
switch (x?y) { case less: ... ;break; case equal: ... ;break; case more: ... ; }
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
05.07.2013, 15:56 | 59 |
По-еврейски.
0
|
05.07.2013, 16:03 | 60 |
0
|
05.07.2013, 16:03 | |
05.07.2013, 16:03 | |
Помогаю со студенческими работами здесь
60
тернарный оператор Тернарный оператор Тернарный оператор Тернарный оператор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |