2012-01-25 3 views

ответ

1

условного оператора ? : работает в аналогичным образом к if else.

Итак:

int A; 
int B; 
// some code that sets the values of A and B 
return A>B?B:A 

То же самое,

int A; 
int B; 
    // some code that sets the values of A and B 
if A>B 
    return B; 
else 
    return A; 

Объяснение условного оператора:

`<Perform operation that gives a boolean result>` ? <return this answer if true> : <return this answer if false> 

Таким образом, вы могли бы:

int smallestValue; 
int inputA; 
int inputB; 

//some code that sets the value of inputA and inputB - perhaps from console input 

smallestValue = (inputA < inputB) ? inputA : inputB; 
+0

Могу ли я получить примеры с цифрами? Как найти наименьшее число r среди двух чисел, пожалуйста. – 912M0FR34K

3
return a<b ? a : b 

эквивалентно

if (a<b) 
    return a; 
else 
    return b; 
+0

+1 - бить меня тоже. Медленное время обновления сегодня. – ChrisBD

+0

Могу ли я получить примеры с цифрами? Как найти наименьшее число среди двух чисел, пожалуйста. – 912M0FR34K

+0

Не понимаю. 'a' и' b' могут быть любыми, что вы хотите. Они могут быть числами. Если вы имеете в виду, как вы используете условный оператор, чтобы найти минимум литералов, таких как '6' и' 9', тогда это бессмысленно. Вы можете сделать это путем проверки. Кроме того, если у вас есть заданные вопросы, не добавляйте их в комментарии, а редактируйте вопрос. –

0

Это макрос выполняет ту же работу ...

#define min(a, b) a<b ? a : b 
+0

Это потенциально очень плохой макрос. Множественные оценки a и b. –

+0

@DavidHeffernan: Я не знаю, почему вы это сказали, но вы можете взглянуть на [link] (http://stackoverflow.com/questions/2458723/c-macro-for-minimum-of-of- два номера) –

+0

Ну, эта ссылка в значительной степени охватывает проблемы –

Смежные вопросы