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? では、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 に答える