вопросы по условному оператору в Java - PullRequest
0 голосов
/ 27 апреля 2011

Я прочитал от Халида Мугала и других, что условный оператор является ассоциативным справа.

Может кто-нибудь объяснить мне, что это значит, и показать мне простой пример?

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Правоассоциативен, поскольку он указан как таковой в Спецификациях языка Java :

Условный оператор синтаксически справа ассоциативен (он группируется справа налево), так что a? B: c? D: e? F: g означает то же самое, что и? B: (c? D :( ? е е: г))

.

Цитата из оригинальной спецификации предоставляет пример (или, по крайней мере, что-то, что можно использовать для написания быстрой демонстрации на Java на main)

0 голосов
/ 27 апреля 2011

Условный оператор ?: равен ассоциативно справа , потому что сначала вычисляется правая сторона

Пояснение Простое выражение условного оператора:

condition ? value if true : value if false

и пример:

boolean ? (10+20):(30+40)

в любом случае, истина или ложь, сначала оцениваются / вычисляются значения справа, а затем возвращается значение в соответствии с условием

Дальнейшие пояснения: Это синтаксически право-ассоциативный (он группируется справа налево), так что a? B: c? D: e? F: g означает то же самое, что и? B: (c? D: (e? f: g)).

Также рассмотрим определение вики

" ассоциативность (или фиксированность) оператора являетсясвойство, определяющее , как операторы с одинаковым приоритетом группируются при отсутствии скобок . "

Надежды, которые помогают

...