anonymous@RULINUX.NET~# Last login: 2024-11-22 12:02:45
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

[C/C++] а какую короткую запись посоветуйте для тройного варианта ?

наподобие записи для двойного

x = a ? b : c;

надо чето-то типа такого, но покороче

cpp

if (a1) {
    if (a2) {
          x = b1;
    } else {
    x = b2;
    }
} else {
    x = c;
}
 


так работать будет?

x = a1 ? (a2 ? b1 : b2) : c;

anonymous(*) (2016-04-07 10:46:04)

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

[Ответить на это сообщение]
avatar
Скрыть

Re: [C/C++] а какую короткую запись посоветуйте для тройного варианта ?

будет

xaxa(*)(2016-04-07 11:10:02)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36
avatar
Скрыть

Re: [C/C++] а какую короткую запись посоветуйте для тройного варианта ?

интересно, а так будет =)

a ? b : c ? d : e

Можно наверное и бесконечно продолжать:

c1 ? v1 : c2 ? v2 : c3 ? v3 : ... : cN ? vN : v0

anonymous(*)(2016-04-07 11:13:00)

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
avatar
Скрыть

Re: [C/C++] а какую короткую запись посоветуйте для тройного варианта ?

Шоб твои дети потом с твоим кодом разбирались :)

anonymous(*)(2016-04-07 11:21:13)

Mozilla/5.0 (X11; Fedora; Linux i686; rv:42.0) Gecko/20100101 Firefox/42.0
avatar
Скрыть

Re: [C/C++] а какую короткую запись посоветуйте для тройного варианта ?

соглашусь с предыдущим оратором, вырвиглазненько

и потом, если у аффтара две булевы переменные, то у них 4 комбинации значений, а не три. так что обобщением тут не пахнет.

> так работать будет?
> x = a1 ? (a2 ? b1 : b2) : c;


работать-то будет, только через месяц сам же не вспомнишь что это значит и замаешься баг искать =)

лучше сделать отдельную функцию для этого

cpp

template <typename T>
T Choose(bool a1, bool a2, T b1, T b2, T c)
{
  if (!a1)
    return c;

  return a2 ? b1 : b2;
}
 


Если вложенный тернарный оператор напрягает, можно сделать так:
cpp

 if(!a1)
    return c;
 return a2 ? b1 : b2;
 


Но мне кажется, проблема выеденного яйца не стоит и вообще это все извращения

anonymous(*)(2016-04-08 12:17:04)
Отредактировано anonymous по причине "не указана"
Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16
avatar
  • матерные выражения
Скрыть

Re: [C/C++] а какую короткую запись посоветуйте для тройного варианта ?

Да ладно, делать на такую херню функцию? Это пиздец изврат)))

xaxa(*)(2016-04-08 12:37:53)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36
avatar
Скрыть

Re: [C/C++] а какую короткую запись посоветуйте для тройного варианта ?

> if(!a1)
Меня сильно нервируют такие надписи, поскольку я не понимаю что они означают. Всегда пишу полное выражение.

anonymous(*)(2016-04-08 15:04:16)

avatar
Скрыть

Re: [C/C++] а какую короткую запись посоветуйте для тройного варианта ?

Откажусь от оратора. Меня надо сдать в дурку

anonymous(*)(2021-08-23 03:52:09)

Mozilla/5.0 (Linux; Android 11; SM-A515F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Mobile Safari/537.36 OPR/64.2.3282.60128
avatar
Скрыть

Re: [C/C++] а какую короткую запись посоветуйте для тройного варианта ?

Ты об чём?

anonymous(*)(2021-09-10 19:59:22)

Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!