2012-04-03 4 views
2

Я не совсем уверен, что делает этот метод, или лучше, я не уверен, что означает «:». Может кто-то, пожалуйста, помогите мне понять?Синтаксис возвращаемого значения в java

private int guess() 
{ 
     return isTrue() ? A : isFalse() ? B : neither() ? C : D; 
} 
+0

Странный пример. Может ли 'isTrue()' и 'isFalse()' действительно оба быть ложными? – EJP

+0

Может быть, это нечеткий логический симулятор? – birryree

ответ

8

Это тот случай, вложенного ternary operators, которые имеют форму a ? b : c, которое приводится к:

if (a) then b, else c 

Так что ваш вопрос срывается к этому:

if (isTrue()) { 
    return A; 
} else if(isFalse()) { 
    return B; 
} else if(neither()) { 
    return C; 
} else { 
    return D; 
} 
+0

это имеет смысл. Спасибо! – FranXh

3

это трехкомпонентной

a ? b : c 

средство (примерно)

if (a) 
    return b; 
else 
    return c; 
0

":" является тройной оператор. Это означает «если условие перед вопросительным знаком истинно», затем используйте предмет перед двоеточием, иначе вещь после двоеточия.

код вы вывесили возвратит A если isTrue(), B если !isTrue() && isFalse(), C если !isTrue() && !isFalse() && neither() и D в противном случае (!isTrue() && !isFalse() && !neither()).

0

Это называется ternary operator.

isTrue()?a:b; 

в коде выше

, если isTrue верно а будет возвращен, в противном случае б будут возвращены.

У вас есть вложенный тернарный оператор.

isTrue() ? A : 
      isFalse() ? B : 
      neither()  ? C   : D; 

что означает isTrue истинно возвращенный, иначе, если оно ложно б возвращается , и если она не является ни с возвращено остальным д будет возвращен.

@birryree данный код примера.

0

Ваши сомнения вполне очевидны. Этот тип синтаксиса мы называем terinary operator. Фактический синтаксис я пишу ниже:

Синтаксис:

Condition ? True part : False part ; 

В приведенном выше заявлении, если условие выполняется верно, то Истинная часть будет выполняться, если выполняется ложь, то Ложные Часть будет выполнена.

Пример:

int x=10; 

if(x==10) ? Print 10(true its Manoj) : Print Not 10(false its Anyone else) ; 

Выход:

печати 10 (правда, его Манодж) *

Я думаю, что эти несколько строк поможет очистить ваши сомнения.

+1

Ваше форматирование серьезно закручено ... – xfix

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