2013-03-15 2 views
-5

В моей книге есть фрагмент кода, который я не понимаю. Это, к сожалению, не объяснил, что он делает ...C++ что делает этот кусок кода?

int big = 200; 
int small = 100; 
int max = (a <= b) ? big : small; 

Так что я знаю, что есть 3 переменные (лол ..).
Целочисленный 'max' получает значение большого, но почему? (a <= b) - это, очевидно, условие, но что делать?? и делай?

Я надеюсь, что кто-то может объяснить мне ...

+5

http://www.cplusplus.com/articles/1AUq5Di1/ – NPE

+0

omfg Почему я получаю эти голоса? Это не объяснялось в моей книге, и когда я googled, ничего полезного не вышло! –

+2

Вы пытались найти '[C++]"? "' Здесь, в Stack Overflow? – crashmstr

ответ

5

? является ternary operators

int max = (a <= b) ? big : small; 

же с

int max; 
if(a <= b) max = big; 
else max = small; 
4

Если a меньше или равна b то макс равно большой, еще максимум равно мало. Для получения дополнительной проверки Ternary Operator

3

Это то же самое, как:

if(a <= b){ 
    max = big; 
} 
else{ 
    max = small; 
} 
2

Это то же самое:

int big = 200, small = 100, max; 

if (a <= b) 
    max= big; 
else 
    max = small; 
4

?: является условным оператором.

int max =(a<=b) ? big : small 

a<=b означает, что если это правда, то max=big i.e. 200 еще max=small i.e. 100

Общий синтаксис:

condition ? value_if_true : value_if_false 
+0

(Pedantic) Вернее, '?' и ':' вместе являются оператором условного присваивания. http://en.wikipedia.org/wiki/%3F:#Conditional_assignment –

+0

Спасибо @ william.berg за ваше предложение :) – Sachin

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