-3
t
を計算してs
を計算したいが、私のコードでは変数s
が定義されていないと不平を言う。なぜこうなった?if文が期待通りに動作しない理由
a=1;
b=2;
t=input('输入');
if (-100<t<0)
T=t+100
c1=20
s=T*t
end
fprintf('输出%f\n',s)
t
を計算してs
を計算したいが、私のコードでは変数s
が定義されていないと不平を言う。なぜこうなった?if文が期待通りに動作しない理由
a=1;
b=2;
t=input('输入');
if (-100<t<0)
T=t+100
c1=20
s=T*t
end
fprintf('输出%f\n',s)
あなたif
ブロックの内容が実行されることはありませんので、あなたがエラーを取得している(とあなたがif
ブロックのcontenstを実行した場合s
のみ定義される):ここでは
-100 < t < 0
が評価される方法によるものです。むしろ
t
は
-100
と
0
の間であれば、それは次のよう
-100 < t
は
true
(1)または
false
(0)
が、のいずれかとすることができるので、
true
に評価するつもりはありません
(-100 < t) < 0;
のと同等ですチェックより1
と0
両方がt
が範囲内にあることを確認するにはない< 0
ある(-100, 0)
の場合、条件を2つに分割し、論理値and
(&&
)と組み合わせることをお勧めします。 t
は、指定された範囲の外にある場合、あなたはあなたが
s = NaN;
if t > -100 && t < 0
T = t + 100;
c1 = 20;
s = T * t;
end
を見ているエラーを取得しないように
if t > -100 && t < 0
また、あなたには、いくつかのデフォルト値にs
を設定してくださいしたいと思います
's'は' if'ステートメントに対してローカルに見えます。 – Carcigenicate
's'は範囲外ですから? 's'はif文の内部で定義され、外部からはアクセスできません。 if文の外側で定義します。 – Li357
私はそれをしていましたが、s = 1に設定した場合、t = -10と入力します。このコードでは、sはT * tに等しくなりますが、t = – karl