Как использовать условный оператор?

Я всегда задавался вопросом, как написать синтаксис "A ? B : C" на языке, совместимом с C ++.

Я думаю, что это работает примерно так: (Псевдокод)

 If A > B C = A Else C = B 

Будет ли любой ветеран программист на C ++, пожалуйста, помогите мне?

Он работает следующим образом:

 (condition) ? true-clause : false-clause 

Он чаще всего используется в операциях присваивания, хотя он имеет и другие виды использования. Тернарный оператор ? является способом сокращения предложения if-else и также называется IIf(condition,true-clause,false-clause) непосредственного-if на других языках (например, IIf(condition,true-clause,false-clause) в VB).

Например:

 bool Three = SOME_VALUE; int x = Three ? 3 : 0; 

такой же как

 bool Three = SOME_VALUE; int x; if (Three) x = 3; else x = 0; 

Он работает следующим образом:

 expression ? trueValue : falseValue 

В основном это означает, что если expression оценивается как true, trueValue будет возвращено или выполнено, а falseValue будет возвращено или оценено, если нет.

Помните, что trueValue и falseValue будут оцениваться и выполняться только в том случае, если выражение истинно или false, соответственно. Такое поведение называется коротким замыканием.

В c ++ нет фактического, если часть этого. Это называется тернарным оператором. Он используется следующим образом: ? : ; Для вашего примера выше это будет выглядеть так:

 C = A > B ? A : B; 

Эта статья о википедии также обсуждает это: http://en.wikipedia.org/wiki/Ternary_operation

Я предполагаю, что вы имеете в виду такие вещи, как a = b? c: d, где b – условие, c – значение, когда b истинно, а d – значение, когда b является ложным.

Я бы сказал? это короткий отрезок. Тем не менее, некоторые «жесткие» программисты склонны говорить о том, что они издали долгий путь, поэтому в будущих случаях люди могут легко читать и модифицировать код.

Например, если вы пишете

 int a = b 

Некоторые люди утверждают, что яснее писать:

 if(b 

Потому что в будущих случаях люди могут его поймать. Конечно, простой b

Никто не упоминает, что результатом условного выражения оператора может быть L-значение в C ++ (но не в C). Следующий код компилируется на C ++ и работает хорошо:

  int a, b; bool cond; a=1; b=2; cond=true; (cond? a : b) = 3; cout << a << "," << b << endl; 

Вышеупомянутая программа печатает 3, 2

Но если a и b имеют разные типы, это не сработает. Следующий код дает ошибку компилятора:

  int a; double b; bool cond; a=1; b=2; cond=true; (cond? a : b) = 3; cout << a << "," << b << endl; 

ЭТО БЫЛО БЫСТРОЕ ОСНОВНОЕ СИНТАКСИС: выражение1? Expression2: expression3;

Если выражение 1 верно, то выражение 2 будет выполняться иначе, если будет выполнено выражение 3.

пример:

hey=24>2?24:34;

здесь как условие истинное значение 24 будет присвоено ему. если оно было ложным, то ему будет присвоено 34

просто вы можете написать это как

С = (A> B) A: B;

ЭТО ТАК ЖЕ:

 if(A>B) C=A; else C=B; 
  • Тернарный оператор?: Vs if ... else
  • Почему этот код недействителен в C #?
  • Условное назначение оператора с помощью типов Nullable ?
  • CSS "и" and "или"
  • Неверные типы и тернарный оператор: почему? 10: null` запрещено?
  • Почему оператор условного оператора является ассоциативным?
  • Interesting Posts

    Ошибка менеджера местоположений: (ошибка KCLErrorDomain 0)

    Как сообщить aptitude или apt предложить конкретную версию lpr?

    Как устранить неисправности в компьютерах?

    Как прокручивать элемент в UWP

    Вызов модального windows в пользовательском интерфейсе пользовательского интерфейса AngularJS с использованием JavaScript

    jackson – сериализация сущностей с двунаправленными отношениями (избегая циклов)

    Почему команда ROUTE ADD не работает?

    Инициализация массива объектов без конструктора по умолчанию

    Как установить гостевые дополнения VirtualBox для CentOS 7?

    Поворот элементов в CSS, которые правильно влияют на их родительскую высоту

    std :: shared_ptr безопасность streamа объясняется

    Слабая переменная NSString не равна нулю после установки единственной сильной ссылки на nil

    Почему Windows 7 предполагает наличие нового сетевого соединения при подключении к существующей точке доступа?

    Как отключить антивирус Symantec Endpoint Protection?

    Открыть новое всплывающее окно без адресных баров в firefox & IE

    Давайте будем гением компьютера.