php сложное логическое выражение

Вчера я пошел на собеседование и получил следующий тестовый вопрос:

Каков вывод этой логики:

if(TRUE && FALSE AND TRUE OR 1 || TRUE && ((TRUE || FALSE) || FALSE)) {
PRINT "A";
}
else print "B";

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

Как бы вы пошли об этом?

0

Решение

Выражение находится в середине, вне скобок: OR 1 ||, Не имеет значения, как оцениваются левое и правое выражения, в конце они объединяются с OR TRUE и результат всегда TRUE,

Напечатанное значение A,

3

Другие решения

Посмотрите на OR 1
Так как это на … ну, давайте назовем это верхним уровнем, это будет правда, ИЛИ что-нибудь еще … что приводит к «истине»;)

0

Результат распечатает A,

Это войдет в if

Объяснение:

ПРАВДА && ЛОЖЬ И ИСТИНА ИЛИ 1 || ПРАВДА && ((ИСТИНА || ЛОЖЬ) || ЛОЖЬ)

ПРАВДА && ЛОЖЬ -> ЛОЖЬ -> НАЗЫВАЕТ ЕГО ЛОЖЬ (1)

ЛОЖЬ (1) И ИСТИНА -> ЛОЖЬ -> ПОЗВОЛЯЕТ ИМЯ ЛОЖЬ (2)

ЛОЖЬ (2) ИЛИ 1 -> ИСТИНА -> НАЗВАТЬ ЕГО ИСТИНА (3)

—— Теперь вторая часть ————

ИСТИНА -> ИСТИНА (4)

((ИСТИНА || ЛОЖЬ) -> ИСТИНА (5)

ИСТИНА (5) || ЛОЖЬ -> ИСТИНА (6)

СЕЙЧАС

объединяя два выражения:

ИСТИНА (3) || ИСТИНА (6) TRUE

0
По вопросам рекламы [email protected]