Синтаксис возвращаемого значения в Java - PullRequest
2 голосов
/ 03 апреля 2012

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

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

Ответы [ 5 ]

8 голосов
/ 03 апреля 2012

Это случай вложенных троичных операторов , которые имеют форму 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;
}
3 голосов
/ 03 апреля 2012

это троичный

a ? b : c

означает (примерно)

if (a)
   return b;
else
   return c;
0 голосов
/ 03 апреля 2012

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

Синтаксис:

Condition ? True part : False part ;

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

Пример:

int x=10;

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

Вывод:

Печать 10 (истинное значение Manoj) *

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

0 голосов
/ 03 апреля 2012

Это называется троичный оператор .

isTrue()?a:b;

в вышеприведенном коде

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

у вас есть вложенный троичный оператор.

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

, что означает, что isTrue имеет значение true a a return, в противном случае возвращается false b и если он не равен cвозвращено, иначе d будет возвращено.

@ birryree, учитывая окончательный пример кода.

0 голосов
/ 03 апреля 2012

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

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

...