Как использовать условный оператор?
Я всегда задавался вопросом, как написать синтаксис "A ? B : C"
на языке, совместимом с С++.
Я думаю, что это работает примерно так: (Псевдокод)
If A > B
C = A
Else
C = B
Будет ли любой ветеран программист на С++, пожалуйста, помогите мне?
Ответы
Ответ 1
Он работает следующим образом:
(condition) ? true-clause : false-clause
Он чаще всего используется в операциях присваивания, хотя он имеет и другие виды использования. Тернарный оператор ?
является способом сокращения предложения if-else и также называется операцией непосредственного-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;
Ответ 2
Он работает следующим образом:
expression ? trueValue : falseValue
В основном это означает, что если expression
оценивается как true, trueValue будет возвращен или выполнен, а falseValue будет возвращен или оценен, если нет.
Помните, что trueValue и falseValue будут оцениваться и выполняться только в том случае, если выражение истинно или false, соответственно. Это поведение называется коротким замыканием.
Ответ 3
В С++ нет фактической, если это часть. Он назывался тернарным оператором. Он используется следующим образом: < boolean statement > ? < result, если true > : < result if false > ; Для вашего примера выше это будет выглядеть так:
C = A > B ? A : B;
В этой статье о википедии также обсуждаются:
http://en.wikipedia.org/wiki/Ternary_operation
Ответ 4
Я предполагаю, что вы имеете в виду такие вещи, как a = b? c: d, где b - условие, c - значение, когда b истинно, а d - значение, когда b является ложным.
Ответ 5
Я бы сказал? это короткий отрезок. Тем не менее, некоторые "жесткие" программисты, как правило, говорят, что они записывают длинный путь, поэтому в будущих случаях люди могут легко читать и изменять код.
Например, если вы пишете
int a = b<c ? b : c;
Некоторые люди утверждают, что яснее писать:
if(b<c)
a = b;
else
a = c;
Потому что в будущих случаях люди могут его поймать. Конечно, простой b < c? b: c легко поймать, но иногда возникают сложные операции, и их трудно обнаружить.
Ответ 6
Никто не упоминает, что результатом условного операторного выражения может быть L-значение в С++ (но не в 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;
Ответ 7
ЭТО БЫЛО ПРОСТО
ЭТО ОСНОВНОЕ СИНТАКСИС:
? Выражение1 выражения2: expression3;
Если выражение 1 верно, то выражение 2 будет выполняться иначе, если будет выполняться выражение 3.
Пример:
hey=24>2?24:34;
здесь, поскольку условию будет присвоено истинное значение 24.
если он был ложным, тогда ему будет присвоено 34
Ответ 8
просто вы можете написать это как
С = (а > В): В;
ЭТО ТАК ЖЕ:
if(A>B)
C=A;
else
C=B;