Похоже, вы понимаете, что делает (X+1)<=99 && (Y+1)<=99
.Давайте посмотрим на ((X+1) && (Y+1))<=99
:
&&
требует логического значения с каждой стороны.a && b
превратит a
и b
в логику, фактически превратившись в a~=0 && b~=0
.Таким образом:
((X+1) && (Y+1) ) <= 99
((X+1)~=0 && (Y+1)~=0) <= 99
( true && true ) <= 99
1 <= 99
true
Конечно, значение истинности (X+1)~=0
и (Y+1)~=0
может быть разным, но здесь вы видите это.В MATLAB true
равно 1
в нелогическом контексте по сравнению с 99
.
Если вы хотите упростить это выражение, используйте max
вместо&&
:
X=100;Y=100;
if max(X+1,Y+1)<=99 && max(X+1,Y+1)<=102
disp(X);
end
Если максимум a
и b
меньше 99
, то и a
, и b
меньше 99
.
(Очевидно, что утверждение можно еще более упростить до if max(X+1,Y+1)<=102
, поскольку, если выполняется второе неравенство, то и первое должно быть.)