2014-02-12 5 views
-7

Это довольно запутанно.
Вопрос: Дайте значение каждого из этих выражений.Java -Boolean выражение переменной и обратное

x && !x 

Это правда или ложь?

+0

Вы можете не дотянув схему «и», если первый операнд не является ложным, и в этом случае, он возвращает ложь ... – Krease

+1

Если вы студент, было бы неплохо попытаться выяснить, что вас смутило, и спросите об этом своего профессора. Это довольно элементарный вопрос; вы должны твердо понимать это поведение. Скорее всего, что бы вы ни запутались, вы в будущем придумаете другие формы. – yshavit

ответ

4
true && !true => false 
false && !false => false 

единственным вариантом является

Boolean x = null; 
x && !x => NullPointerException. 
+0

Можно ли присвоить значение null любой переменной в Java? Кстати, спасибо за ваш ответ, очень ясный и демонстративный. – JungleJeem

+1

@JungleJeem Вы можете присвоить его любой ссылке, а не примитиву. –

0

Всегда false кроме x является null

&& Вызывается Логическое И оператор. Если оба операнда true, то условие становится true.

+0

Я сказал, что условный beacause из этого: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html Однако ваш ответ очень ясен и имеет смысл. – JungleJeem

0

Почему вы не проверить это самостоятельно?

Я не вижу, как применяется короткое замыкание. Чтобы проверить, истинна ли его истинная, обе стороны оператора И должны быть истинными, и нет ярлыков в том случае, если весь exp равен true.

2

Я не знаю, понял ли я ваш вопрос, но я не вижу, как это выражение когда-либо будет оценено как истинное. Если x должен быть установлен в значение True, то значение x будет оцениваться как False и наоборот. Логическая операция И будет оцениваться только в True, если оба параметра имеют значение True. Поскольку это никогда не будет, выражение всегда будет False.

Короткое замыкание происходит только в том случае, если левая сторона False. Тогда нет необходимости оценивать правую сторону. Выражение никогда не будет замыкаться, если левая сторона имеет значение True.

0

В теории могут быть некоторые проблемы с многопоточностью, но только в теории