int a = 10, b = 12, c = 8
!((a < 5) || (c < (a + b)))
Я только что попробовал это в компиляторе, и это было ложно.
Внутреннее выражение:
(a < 5) || (c < (a + b))
оценивает a < 5
как false
(поскольку a
является 10
) а также c < (a + b)
как true
(поскольку 8
меньше чем 10+12
). Выполнение логической операции «или» над false
а также true
дает тебе true
,
И, учитывая, что следующее, что вы делаете с этим значением, это !
(инверсия), что true
превращается в false
,
c < (a + b) == 8 < (10 + 12) == 8 < 22 == true
a < 5 == 10 < 5 == false
(a < 5) || (c < (a + b)) == false || true == true
!((a < 5) || (c < (a + b))) == !(true) == false