0

我想在 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 语句是错误的?ai 理解它与 if 5<4 || 相同 4<8?then 它让我明白为什么它只执行 if 语句而从不到达 else

4

1 回答 1

3

5<4<8被评估为(5<4)<8。如果我们首先解析括号中的表达式,我们有0<8,这是真的。用 测试5<4==0,计算结果为true

您要做的是检查是否x既大于 3 又小于 6,即

3<x && x<6

于 2013-05-26T07:30:02.040 回答