我想在matlab中调试以下最简单的代码,并澄清为什么它始终执行if语句
function testfile(x)
if 3<x<6
disp('in the middle of range');
else
disp('out of range');
end
end
我使用了以下代码进行调试
echo testfile on
testfile(-2)
in the middle of range
testfile(6)
in the middle of range
为什么它不执行else语句?我使用以下代码作为测试
5<4<8
ans =
1
这是否意味着在这种风格中写if语句是错误的?我理解它就像5&lt; 4 ||一样4&lt; 8?然后它告诉我为什么它只在语句中执行而且永远不会到达else
答案 0 :(得分:3)
5<4<8
评估为(5<4)<8
。如果我们首先在括号中解析表达式,我们有0<8
,这是真的。使用5<4==0
进行测试,其评估结果为true
。
您要做的是检查x
是否大于3且小于6,即
3<x && x<6